web-dev-qa-db-fra.com

Chargement du fichier html du dossier local dans la vue Web

Je suis nouveau sur Android.

Je veux charger un fichier html dans une vue Web .

Notez qu'il y a tellement de questions pertinentes sur SO comme this , mais elles traitent toutes d'obtenir **. Html * de dossier des ressources .

Mais je veux charger le fichier html à partir du dossier local, dites "D: //abc.html" car si mon html est d'environ 10 Mo, la taille apk correspondante va également jusqu'à 10 Mo.

Toute aide appréciée.

ÉDITER

J'ai essayé webView.loadUrl("file:///D:/Projects/myWebsite/index.html");

mais ça donne Web page not available et File not found error.

24
GAMA

Vous pouvez utiliser:


   WebView webView = // ...

   webView.loadUrl("file:///myPath/myFile.html");

Dans une application Android Android, les fichiers peuvent être lus à partir de 3 types d'emplacements:

  • Stockage interne: Chaque application a ses propres, les noms de fichiers sont relatifs à cet emplacement. L'URL prend la forme file:///myFolder/myFile.html

  • Stockage externe: Nécessite une autorisation et n'est pas toujours disponible. Obtenez le dossier racine en appelant Environment.getExternalStorageDirectory () . Donc, construisez l'URL en utilisant: String url = "file:///" + Environment.getExternalStorageDirectory().toString() + File.separator + "myFolder/myFile.html"

  • Actifs : stockés dans l'apk. Accès en lecture seule. L'URL prend la forme file:///Android_asset/myFolder/myFile.html (Voir aussi Chargement d'une ressource Android Resource dans une WebView )

43
Tony the Pony

Dans Android 4.4 KitKat, un "Pas autorisé à charger la ressource locale: fichier: /// .." est levé. Survient lorsque loadURL et la seule alternative que j'ai trouvée est "loadDataWithBaseURL".

webView.loadDataWithBaseURL("file:///Android_asset/demo/",
                             tmpDocumentText,"text/html", "UTF-8", null);
4
Toni Gamez

WebView a la méthode loadData http://developer.Android.com/reference/Android/webkit/WebView.html

Tout ce que vous devez faire est de lire le fichier dans String puis de le charger dans WebView à l'aide de loadData.

2
RobGThai