Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XMLHttpRequest cannot load file from android asset folder on emulator

I am new to hybrid development. I wrote a small application which launches webview. I have XML, JS files copied in /asset folder.

App works fine on my samsung tablet but I get following errors on emulator

05-30 06:09:07.080: I/chromium(1245): [INFO:CONSOLE(0)] "XMLHttpRequest cannot load file:///android_asset/resource/service_config.xml. Cross origin requests are only supported for HTTP.", source: file:///android_asset/Startup.html (0)

I got to know it happens due to chrome browsers security model and android webview too uses the same component as chrome browser. But all these largely related to chrome browser not addressing the issue on emulator.

Appreciate any help on this issue.

Thanks,
iuq

like image 200
iuq Avatar asked May 30 '14 12:05

iuq


1 Answers

got the same error. I fixed it by changing some settings of the webview in the activities onCreate() method as follows:

// settings for webview
mWebView = (WebView)findViewById(R.id.activity_main_webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginState(PluginState.ON);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAllowContentAccess(true);
mWebView.getSettings().setAllowFileAccessFromFileURLs(true);
mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);

//load file
mWebView.loadUrl("file:///android_asset/www/index.html");

Hope that might help you :)

like image 66
Richard R Avatar answered Oct 23 '22 21:10

Richard R