2011-06-28 3 views
2

Semblable à this question, j'essaie de charger un fichier HTML dans un webview. Ce fichier HTML n'est pas créé lors de la compilation, mais lors de l'exécution. Je charge une page Web et la mets en mémoire cache pour une utilisation ultérieure, au cas où l'utilisateur n'est pas connecté à Internet et souhaite voir les informations sur la page.Charger un fichier html enregistré dans une vue Web

Voici comment j'écrire le code html sur:

FileOutputStream fos = openFileOutput("info.html", Context.MODE_PRIVATE); 

    URL url = new URL(surl); 
    InputStream is = url.openStream(); 

    ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream(); 
    int bufferSize = 1024; 
    byte[] buffer = new byte[bufferSize]; 

    int len = 0; 
    while ((len = is.read(buffer)) != -1) 
    { 
     byteBuffer.write(buffer, 0, len); 
    } 
    String outputString = new String(byteBuffer.toByteArray()); 

    fos.write(outputString.getBytes()); 

    fos.close(); 

Je suis en mesure d'ouvrir et de lire le code HTML de la même façon, mais pour une raison quelconque, en essayant de charger le code HTML dans le WebView comme une chaîne ne fonctionne pas. J'ai pensé qu'il serait plus facile pour le webview de l'ouvrir en tant que fichier (puisqu'il est de toute façon enregistré en tant que fichier). Je ne suis pas sûr de la bonne façon de charger ce fichier maintenant. Voici quelques méthodes que j'ai essayé:

view.loadUrl("file:///info.html"); 
view.loadUrl("info.html"); 
view.loadUrl("/info.html"); 

Répondre

4

essayer

fichier

: ///data/data/info.html

peut-être juste une donnée, mais je pense que les fichiers locaux sont stockés dans la section de données de votre application.

+1

en fait, c'est parti. http://www.techjini.com/blog/2009/01/10/android-tip-1-contentprovider-accessing-local-file-system-from-webview-showing-image-in-webview-using- content/ – Andrew

+0

Semble être une bonne solution, sauf que son exemple de code est si mal documenté. –

+0

Je peux dire que je l'ai implémenté correctement, mais j'ai juste obtenu "Le fichier demandé n'était pas fou.d Aucun fournisseur de contenu: content: // com.company.app/info.html " –

Questions connexes