90 votes

Chargement du fichier .html existant avec androïde WebView

J'ai essayé d'échantillons, de maquettes à partir de Google codes et d'autres ressources avec WebView, mais quand j'essaie de le faire dans mon propre code, il ne fonctionne pas pour moi.

Je veux charger myfile.html que j'ai mis dans le dossier des ressources, et à l'aide de:

private WebView myWebView;

myWebView.loadUrl("file:///android_assets/myfile.html");

Sur émulateur d'erreur s'affiche

La page web à l' file:///android_assets/myfile.html pourrait ne pas être chargé comme: Le fichier demandé n'a pas été trouvé. /android_assets/myfile.html

Quand j'ai mis ce fichier en res/raw/ le dossier et l'aide de:

myWebView.loadUrl("file:///android_res/raw/myfile.html");

alors seulement émulateur android 2.2 API de niveau 8 peut charger le fichier probablement, d'autres versions plus anciennes montrent la même erreur. Ai-je raté quelque chose?

Est-il possible de charger une existante .fichier html dans le package de l'application qui fonctionne sur toutes les versions de l'API ?

168voto

laph Points 1068

ok, c'était ma très stupide erreur. Je poste la réponse ici au cas où quelqu'un aurait le même problème.

Le chemin correct pour les fichiers stockés dans le dossier des actifs est file:///android_asset/* (sans "s" pour le dossier des actifs, ce qui me faisait toujours penser qu'il doit avoir un "s").

De plus, mWebView.loadUrl("file:///android_asset/myfile.html"); fonctionne sous tous les niveaux d'API.

Je ne comprends toujours pas pourquoi mWebView.loadUrl("file:///android_res/raw/myfile.html"); ne fonctionne que sur le niveau 8 de l'API. Mais peu importe maintenant.

17voto

Naresh Points 71

collez votre fichier .html dans le dossier assets de votre dossier de projet. et créez un fichier xml dans le dossier de présentation avec le code suivant: my.xml:

 <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/webview"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
    />
 

ajouter le code fol dans l'activité

 setContentView(R.layout.my);
    WebView mWebView = null;
    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("file:///android_asset/new.html"); //new.html is html file name.
 

6voto

Arunkumar Points 31

Copiez et collez votre fichier .html dans le dossier des ressources de votre projet et ajoutez le code ci-dessous dans votre activité sur onCreate ().

         WebView view = new WebView(this);
        view.getSettings().setJavaScriptEnabled(true);
        view.loadUrl("file:///android_asset/**YOUR FILE NAME**.html");
        view.setBackgroundColor(Color.TRANSPARENT);
        setContentView(view);
 

2voto

Lucho Points 1661

Vous pouvez lire le fichier html manuellement, puis utiliser les méthodes loadData ou loadDataWithBaseUrl de WebView pour l'afficher.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X