Как установить базовый 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/");
Другие вопросы по тегам