0

我正在使用 WebView,需要提供从 HTML 到位于原始资源中的 javascript 文件的访问。我可以在从数据加载 HTML 页面时简单地做到这一点:

webView.loadDataWithBaseURL("file:///android_res/raw/", getHtml(), "text/html", "utf-8", null);


这样在加载的 HTML 中调用

<script type="text/javascript" src="mraid.js"></script> 

导致mraid.js位于 res/raw 文件夹下。

问题是,有没有一种简单的方法可以在从外部 URL 加载页面时类似地设置基本 URL 以达到相同的效果?不幸的是,我看不到任何WebView.loadUrlWithBaseUrl方法。

我是否必须使用 HTTP GET 获取页面,而不是像上面那样使用 `loadDataWithBaseURL' 方法?

4

2 回答 2

1

我认为没有一种简单的方法可以设置基本 url。如果您控制服务器,则可以指定一个额外的参数来添加<base href="file:///android_res/raw/" />标签。

否则,您可以使用shouldInterceptRequest来提供本地资源而不是远程资源。(注意:注意线程!)

于 2014-04-08T12:03:47.623 回答
-2

试试这个-

  mWebview =(WebView)findViewById(R.id.webviewNews);
            mWebview.getSettings().setUserAgentString("Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");
            mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript
            mWebview.getSettings().setAppCacheEnabled(true); 
            mWebview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
            mWebview.getSettings().supportZoom();
            mWebview.canGoBack();
            mWebview.loadUrl("http://www.google.com/");
于 2014-04-08T11:27:52.870 回答