I have created an Android app that has the purpose to promote my country all over the world., using Intel XDk ( using HTML 5 and JavaScript ). You can download the app from here 1
Every time I start the app with the device connected to the internet, it says
Application Error The connection to the server was unsuccessful (file:///android_asset/www/index.html), but when I turn off the Internet it works. Some features require Internet connection, so I really need to connect the device to internet.
The only on-line plugin that I use is a speech to text plugin downloaded from here 2. Can somebody help me solve this problem?
Alex Hang
file:///android_asset/www/index.html
Is a pointer to the local assets directory within the package of your application. Instead of trying to connect to is just use loadDataWithBaseURL and then point it to your assets. The issue with this is that it is a local copy of the html page, so it changes occur you have to update the file in the assets directory.
WebView article = (WebView) findViewById(R.id.article_webview);
article.loadDataWithBaseURL("file:///android_asset/www/index.html", null, "text/html", "UTF-8", null );
Related
I have a Xamarin.Forms mobile app, this one contains a WebView.
This WebView URL should be my local development machine because I have a web app running there.
So, when running the Android Emulator, I try to use the loopback address, https://10.0.2.2:44390 ... but the WebView remain white!
I have read the following docs, but it does not help:
https://learn.microsoft.com/en-us/xamarin/cross-platform/deploy-test/connect-to-local-web-services
https://medium.com/#noumaan/ssl-app-dev-a2923d5113c6
https://developer.android.com/studio/run/emulator-networking
This doc seems to focus on accessing a WebAPI, with a HttpClient, but I'm not sure that this scenario is correct for the WebView.
Noticed that from 'Chrome android', I got the following message: 'HTTP Error 400. The request hostname is invalid'. I got the following dialog:
Does my Blazor app (using a self-signed certificate) should use '10.0.2.2' instead of 'localhost' by example ?
If someone has any idea, really welcome :-)
In your applicationhost.config change in the bindingInformation the 'localhost' to '127.0.0.1'. That solved it for me.
See this answer where I found the solution.
I want to implement video-cast of video from internal storage or sd-card.
I see that this sample (https://github.com/googlecast/CastVideos-android ) does cast of internet content only.
How can I do same thing but using video from device ??
There is some tutorial or sample code ?
Edit:
I do more search, local web server is the way ? Something like nanohttpd ?
Yes, you need to set up a local web server in your android app and serve the media from that server.
step 1:
Run simple http server app in your device
https://play.google.com/store/apps/details?id=jp.ubi.common.http.server&hl=en
step 2: open chrome in your laptop and type your android device's http address (from the above app). you will get your device's directory. copy the address of a video file.
step 3. in CastVideos-android project open VideoProvider.java file.
modify the line :
String videoUrl =
step4: run the CastVideos-android project and enjoy casting.
(try clicking on big buck bunny video, to get the video casted faster)
I created a worklight application. I tried running that application on android emulator and i am getting the following error.
[http://localhost:8080/apps/services/api/MyFirstApp/android/query] Host is not responsive.
Try to manually access the URL through the android emulator browser to verify connectivity
So i tried to enter the same url in the emulator browser, i got the following text:
/*-secure-
{"WL-Authentication-Failure": {"wl_remoteDisableRealm":{"reason":"Login Failed}}} */
Can someone help me with this?
I am using Android OS version: 4.2.2, API level: 17
I haven't changed any application settings myself..
I am trying to go to a basic login page with the url "https://jazz.net/jazz/auth/j_security_check"
This is my adapter XML:
<wl:adapter xmlns:wl="worklight.com/integration"; xmlns:http="worklight.com/integration/http"; xmlns:xsi="w3.org/2001/XMLSchema-instance"; name="RQMAdapter">
<displayName>RQMAdapter</displayName>
<description>HTTP type Worklight Adapter for jazz server</description>
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>https</protocol>
<domain>jazz.net</domain>
</connectionPolicy>
<loadConstraints maxConcurrentConnectionsPerNode="2" />
</connectivity>
<procedure name="loginToRQM" />
</wl:adapter>
This is my scenario:
I have a requirement where I need to read information about the projects from jazz.net for a user. They are all available on the jazz server within an XML file. I need to process it to a mobile device to make it available on hand held device... So, now I am told that i will have to download some of the files from the server, so i need to have file IO on my app. I learned that we need to write this part using a Cordova plug-in in Worklight.
please let me know what else is needed for the solution... thank you
Make sure to place the actual IP address of your server machine:
Change the value for worklightServerRootURL in the file
application-descriptor.xml (located at: yourProject\apps\yourApp)
Build and deploy
Right-click on the generated Android project >> Run As >> Run application
If you are using using Worklight 5.0.5, make sure to upgrade to 5.0.6, where a fix is available when only API Level 17 is installed.
As for going to that URL, you need to explain where exactly you're trying to go to it from, and how... you need to be more descriptive. It sounds to me like you haven't gone through the Getting Started material. Please do.
I had the same problem.
I have solved it by using the real IP address of the server in the WL app instead of using localhost:
When the emulator is running your app, press the Menu button.
Select to change your server URL
Remove "localhost" and use the IP address.
Accept and try again.
This fixed my problem.
I am currently building an Android app using HTML5. Inside my app, I am providing link to a HTML file available inside tomcat server on my machine.
<div>Beep</div>
The HTML file "sample.html" has link to download a file in same file location, where the sample.html is placed.
sample.html has this --> Click to download
The problem here is, when I run my app on an android mobile, the link stays dumb and it won't initiate the download from the given path.
But, the same URL when I open in a web browser, the download starts.
Could anyone let me know why this URL is not initiating the download inside my app??
I already enabled "Allow installation of non-Market applications" in the settings of my android device.
If you are using real device you must set your url with static ip of your machine like 192.168.0.10 and in emulator 10.0.0.2
See this post.
Use 10.0.2.2 as IP for server running on the same machine as the Android emulator.
Check out following post with similar problem:
Download File inside WebView
Check out this link for setting up the mime type in tomcat.
Copied for reference:
In Tomcat 5.x and 4.x, the default mappings between MIME types and file extensions are stored in the file tomcat_home/conf/web.xml, where tomcat_home is the path under which Tomcat was installed on your server. The mappings specified there are applied to all web / WAP applications hosted on your Tomcat server. Application-specific mappings should be set in the WEB-INF/web.xml file under the directory of your web / WAP application.
Each mapping is specified with the <mime-mapping>, <extension> and <mime-type> tags. Here is an example:
<web-app>
...
<mime-mapping>
<extension>xhtml</extension>
<mime-type>application/vnd.wap.xhtml+xml</mime-type> </mime-mapping>
<mime-mapping>
<extension>wml</extension>
<mime-type>text/vnd.wap.wml</mime-type> </mime-mapping>
<mime-mapping>
<extension>wmls</extension>
<mime-type>text/vnd.wap.wmlscript</mime-type> </mime-mapping>
<mime-mapping>
<extension>wbmp</extension>
<mime-type>image/vnd.wap.wbmp</mime-type> </mime-mapping>
...
</web-app>
I'm trying to create an Android (2.2) app using Phonegap (version 1.9.0) and jQuery Mobile (1.1.0). Specifically, the app is supposed to send a GET request to an existing WCF REST service and retrieve JSON data (a list of folders) and display each item as an option in a select drop down menu.
Right now, all this works as it should when I use the desktop browser. The WCF REST service sends the correct response, the browser renders the page correctly and puts the options in the select menu as I want it to. However, when I use the following code in Android app using Phonegap:
$.getJSON('http://xxx.xxx.xxx/MobileService.svc/GetFolders?callback=?', null, function (folders) {
$.each( folders, function( i, folder ) {
$("#folders").append("<option value='"+folder.Id+"'>"+folder.Name+"</option>");
});
$("#folders").selectmenu("refresh");
});
...I get the error message when I boot the Android app (debugging on physical device):
Connection to the server was unsuccessful. ("file:///android_asset/www/index.html")
When I comment out the above $.getJSON code, the app loads fine, but the select menu is unpopulated.
I've also noticed that apparently because Phonegap uses the "file://" protocol, it is not affected by the "same-origin policy" that the "http://" protocol is...I had been using JSONP when I was working with the browser, which is why I have the callback. I don't think this should be the reason why it is failing, but I dont know. Any help will be greatly appreciated!
Things I've tried:
Changing the access origin to ".*" in the cordova.xml
Adding 'super.setIntegerProperty("loadUrlTimeoutValue", 60000);' to the activity
You can try to set your cordova.xml to "*" instead of ".*" as seen on the Getting Started Guide
Or even better:
http://xxx.xxx.xxx
It turns out in my particular case that the issue boiled down to the mobile phone being on guest wifi network that didn't have access to the network where the REST service was hosted so the connection was being blocked.
Hope that can help someone