4

在我的应用程序中,正在加载驻留在 SD 卡中的本地 html

String extPath = getExternalFilesDir(null).toString();
String html = getHtml(extPath+File.separator+fileName); //it just reads html file and returns content as string
webvu.loadDataWithBaseURL("file://"+extPath+File.separator,html ,
"text/html","UTF-8", null);

在 Web 视图 (webvu) 中加载的 html 文件尝试使用 $.load ajax 调用加载另一个 html 文件

$.load("base.html",function(){ ... });

ajax load 抛出以下错误。我该如何解决这个问题

XMLHttpRequest 无法加载 file:///storage/emulated/0/Android/data/com.example.sdcardwebview/files/sec.html。无法从 null 发出任何请求。在空:1

4

1 回答 1

8

我终于想出了解决方案

空源问题只发生在 JB 中,据说它有一个基于新 webkit 的 webview,它实现了更严格的同源策略。

因此,有问题的代码在 JB 以下的所有 android 版本上都可以正常工作。要让代码在 JB 上运行,我们需要做的就是更改 Web 视图设置。打电话

webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
于 2013-01-28T17:50:13.053 回答