如何在将URL加载到WebView时设置基本URL

时间:2014-04-08 11:26:11

标签: android android-webview mraid

我正在使用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'方法?

2 个答案:

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