【问题标题】:XMLHttpRequest cannot load file from android asset folder on emulatorXMLHttpRequest 无法从模拟器上的 android 资产文件夹加载文件
【发布时间】:2014-07-20 05:46:03
【问题描述】:

我是混合开发的新手。我写了一个启动 webview 的小应用程序。我在 /asset 文件夹中复制了 XML、JS 文件。

应用程序在我的三星平板电脑上运行良好,但在模拟器上出现以下错误

05-30 06:09:07.080: I/chromium(1245): [INFO:CONSOLE(0)] “XMLHttpRequest 无法加载 文件:///android_asset/resource/service_config.xml。跨原点 请求仅支持 HTTP。”,来源: file:///android_asset/Startup.html (0)

我知道这是由于 chrome 浏览器的安全模型和 android webview 也使用与 chrome 浏览器相同的组件。但所有这些很大程度上与 chrome 浏览器没有解决模拟器上的问题有关。

感谢有关此问题的任何帮助。

谢谢,
iuq

【问题讨论】:

标签: android android-emulator hybrid-mobile-app


【解决方案1】:

遇到同样的错误。我通过更改活动onCreate() 方法中的 webview 的一些设置来修复它,如下所示:

// 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");

希望对你有帮助:)

【讨论】:

  • 谢谢,这解决了我的问题。请注意,在 API18 中这不是必需的,但在 API20 中是这样的。
  • Richard R - High5 --> 你让我头疼不已
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 2020-08-10
  • 2017-12-05
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多