Загрузить файл HTML в WebView
У меня есть локальная страница html вместе с несколькими другими указанными ею ресурсами (css файлы и библиотеки Javascript), которые я бы хотел загрузить в WebView. Как это можно достичь?
Возможно, это не лучший способ, но я все еще экспериментирую.
Ответы
Ответ 1
Возможно, самым простым способом было бы поместить ваши веб-ресурсы в папку активов и затем вызвать:
webView.loadUrl("file:///android_asset/filename.html");
Для полной связи между Java и Webview см. Это
Обновление. Папка ресурсов обычно представляет собой следующую папку: <project>/src/main/assets
Это можно изменить в настройке конфигурации папки <app>.iml
файле <app>.iml
следующим образом:
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets"/>
См. статью Где разместить папку ресурсов в Android Studio
Ответ 2
возможно, этот образец мог бы помочь:
WebView lWebView = (WebView)findViewById(R.id.webView);
File lFile = new File(Environment.getExternalStorageDirectory() + "<FOLDER_PATH_TO_FILE>/<FILE_NAME>");
lWebView.loadUrl("file:///" + lFile.getAbsolutePath());
Ответ 3
В этом случае использование WebView#loadDataWithBaseUrl()
лучше, чем WebView#loadUrl()
!
webView.loadDataWithBaseURL(url,
data,
"text/html",
"utf-8",
null);
url: url/path Строка, указывающая на каталог, все ваши файлы JavaScript и html-ссылки имеют свое происхождение. Если null, это примерно: пустое.
data: Строка, содержащая ваш hmtl файл, например, с помощью BufferedReader
Дополнительная информация: WebView.loadDataWithBaseURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
Ответ 4
Принятый ответ не работает для меня, это то, что работает для меня
WebSettings webSetting = webView.getSettings();
webSetting.setBuiltInZoomControls(true);
webView1.setWebViewClient(new WebViewClient());
webView.loadUrl("file:///android_asset/index.html");