Подтвердить что ты не робот

Загрузка 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.

4b9b3361

Ответ 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);