Загрузка html файла из локальной папки в webview
Я новичок в разработке Android.
Я хочу загрузить html файл в webview.
Обратите внимание, что на SO есть так много релевантных вопросов, как , но все они связаны с получением **. html * из папки с ресурсами.
Но я хочу загрузить html файл из локальной папки, скажем, "D://abc.html", потому что если мой html составляет около 10 Мб, тогда соответствующий размер apk также будет до 10 МБ.
Любая помощь была оценена.
ИЗМЕНИТЬ
Я пробовал webView.loadUrl("file:///D:/Projects/myWebsite/index.html");
но он дает Web page not available
и File not found error
.
Ответы
Ответ 1
Вы можете использовать:
WebView webView = // ...
webView.loadUrl("file:///myPath/myFile.html");
В приложении Android файлы можно читать из трех типов местоположений:
-
Внутреннее хранилище. Каждое приложение имеет свои собственные, имена файлов относятся к этому местоположению. URL-адрес принимает форму file:///myFolder/myFile.html
-
Внешнее хранилище: Требуется разрешение и может не всегда быть доступным. Получите корневую папку, вызвав Environment.getExternalStorageDirectory(). Итак, создайте URL-адрес, используя: String url = "file:///" + Environment.getExternalStorageDirectory().toString() + File.separator + "myFolder/myFile.html"
-
Активы: хранится в apk. Доступ только для чтения. URL-адрес принимает форму file:///android_asset/myFolder/myFile.html
(см. Также Загрузка ресурса Android в WebView)
Ответ 2
В Android 4.4 KitKat загружается "Не разрешено загружать локальный ресурс: файл:///..".
возникают, когда loadURL и единственная альтернатива, которую я нашел, это "loadDataWithBaseURL".
webView.loadDataWithBaseURL("file:///android_asset/demo/",
tmpDocumentText,"text/html", "UTF-8", null);
Ответ 3
WebView имеет метод loadData http://developer.android.com/reference/android/webkit/WebView.html
Все, что вам нужно сделать, это прочитать файл в String, а затем передать его в WebView с помощью loadData.