Как установить базовый URL при загрузке URL в WebView
Я использую 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 ответа
Я не думаю, что есть простой способ установить базовый URL. Если вы управляете сервером, вы можете просто указать дополнительный параметр, который добавит <base href="file:///android_res/raw/" />
тег.
В противном случае вы могли бы использовать shouldInterceptRequest для обслуживания локального ресурса вместо удаленного. (ПРИМЕЧАНИЕ: обратите внимание на темы!)
Попробуй это-
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/");