example - webview android studio 2017
Cargando archivo html de la carpeta local en webview (3)
En Android 4.4 KitKat, se lanza un "No se permite cargar el recurso local: archivo: /// ..". surgen cuando loadURL y la única alternativa que he encontrado es "loadDataWithBaseURL".
webView.loadDataWithBaseURL("file:///android_asset/demo/",
tmpDocumentText,"text/html", "UTF-8", null);
Soy nuevo en el desarrollo de Android.
Quiero cargar un archivo html en una vista web .
Tenga en cuenta que hay tantas preguntas relevantes en SO como this , pero todas se ocupan de obtener **. Html * de la carpeta de activos .
Pero quiero cargar el archivo html desde la carpeta local, decir "D: //abc.html" porque si mi html está alrededor de 10Mb, el tamaño del archivo apk correspondiente también aumenta hasta 10mb.
Cualquier ayuda apreciada.
EDITAR
Intenté webView.loadUrl("file:///D:/Projects/myWebsite/index.html");
pero da la Web page not available
y el File not found error
.
Puedes usar:
WebView webView = // ...
webView.loadUrl("file:///myPath/myFile.html");
En una aplicación de Android, los archivos se pueden leer desde 3 tipos de ubicaciones:
Almacenamiento interno: cada aplicación tiene sus propios nombres de archivo, relacionados con esta ubicación. La URL toma el
file:///myFolder/myFile.html
formulariofile:///myFolder/myFile.html
Almacenamiento externo: necesita permiso y puede que no siempre esté disponible. Obtenga la carpeta raíz llamando a Environment.getExternalStorageDirectory() . Entonces, construya la URL usando:
String url = "file:///" + Environment.getExternalStorageDirectory().toString() + File.separator + "myFolder/myFile.html"
Activos : Almacenado en la apk. Acceso de solo lectura. La URL toma el
file:///android_asset/myFolder/myFile.html
formulariofile:///android_asset/myFolder/myFile.html
(Consulte también Cómo cargar un recurso de Android en un WebView )
WebView tiene el método loadData http://developer.android.com/reference/android/webkit/WebView.html
Todo lo que necesita hacer es leer el archivo en String y luego alimentarlo a WebView usando loadData.