我正在使用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'方法?
答案 0 :(得分:1)
我认为没有一种简单的方法来设置基本网址。如果您控制服务器,则可以指定一个额外的参数,该参数将添加<base href="file:///android_res/raw/" />
标记。
否则,您可以使用shouldInterceptRequest来提供本地资源而不是远程资源。 (注意:记住线程!)
答案 1 :(得分:-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/");