web-dev-qa-db-fra.com

Chargement du fichier html local dans webView android

Je dois charger un fichier html existant dans un WebView qui se trouve à ce chemin dans le système de fichiers:

/data/data/com.example.example/files/file.html

Mais, quand le WebView le charge, je ne vois rien. Qui peut m'aider?

WebView code (en supposant que path est le chemin que j'ai écrit ci-dessus):

 WebView webView = (WebView)findViewById(R.id.webView1);

  File htmlFile = new File(path);
    if(htmlFile.exists())
    {
        webView.loadUrl(htmlFile.getAbsolutePath());

    }
18
donadev

Essayez ceci, en ajoutant un file:/// et le faire un peu différemment:

WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///data/data/com.example.example/files/file.html");  

Au lieu de cela, cependant, vous pouvez simplement placer le fichier dans votre dossier assets dans le code source, puis procédez comme suit:

WebView webView = (WebView)findViewById(R.id.webView1);
webview.loadUrl("file:///Android_asset/file.html");
43
hichris123

Le fichier html doit être placé dans le dossier assets, qui appartiendra au répertoire racine de votre projet.

Déplacez donc votre fichier vers en cas d'Eclipse

assets/index.html

Dans un projet Android Studio, utilisez ce dossier:

/app/src/main/assets/index.html

Maintenant, utilisez

WebView wv= (WebView)findViewById(R.id.webView1);
wv.loadUrl("file:///Android_asset/index.html");
22
Nauman Ash

Vous devez implémenter un ContentProvider pour mapper les fichiers locaux aux uris comme expliqué dans ce lien comment afficher un fichier local dans Android Webview

ou vous chargez simplement une page html à partir du dossier Assets comme ci-dessous:

 WebView wv= (WebView)findViewById(R.id.webView1);
 wv.loadUrl("file:///Android_asset/yourfile.html");
 wv.getSettings().setJavaScriptEnabled(true);
6
M D