使用$ .load加载本地html

时间:2013-01-28 10:54:09

标签: android jquery android-webview

在我的应用中,我正在加载一个驻留在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无法加载   文件:///storage/emulated/0/Android/data/com.example.sdcardwebview/files/sec.html。   无法从null发出任何请求。 at null:1

1 个答案:

答案 0 :(得分:8)

我终于找到了解决方案

null原点问题只发生在JB,它应该有一个基于新webkit的webview,它实现了更严格的同源策略。

因此,有问题的代码在JB下面的所有Android版本上运行得非常好。要使代码在JB上运行,我们需要做的就是更改Web视图设置。只需致电

webView.getSettings().setAllowUniversalAccessFromFileURLs(true);