2012-06-18 5 views
1

J'essaie de charger une page HTML statique dans une vue Web.Chargement du code HTML statique dans Webview

Lorsque je change son contenu en une simple page html cela fonctionne. Donc, je crois que quelque chose ne va pas avec ce fichier html, mais le fichier est visualisé correctement sur Mozilla et Chrome. donc mes questions sont

  • Ce que les erreurs html courantes que le webview android ne passe pas.
  • Si quelque chose ne va pas avec le fichier html alors qu'est-ce que c'est.

Le fichier html http://snipt.org/vagL9

Screenshot

Emulator Screenshot

+0

pouvez-vous poster le code que vous avez utilisé pour charger le code HTML dans le WebView? – FoamyGuy

+0

Je l'ai déjà inclus dans la question Le fichier html http://snipt.org/vagL9 –

+0

qui est le code html. Je parle du code Java qui charge votre fichier html dans votre WebView. – FoamyGuy

Répondre

1

C'est un SDK Bug Le loadData (String, ..., ...) convertit le contenu des chaînes en une uri, et tel que mon code contient des caractères qui doit être codé comme % il a tronqué le code provoquant des erreurs. donc la solution que l'on trouve ici est de convertir ces caractères en unicode que ce code

public final static void webViewLoadData(WebView web, String html) { 
    StringBuilder buf = new StringBuilder(html.length()); 
    for (char c : html.toCharArray()) { 
    switch (c) { 
     case '#': buf.append("%23"); break; 
     case '%': buf.append("%25"); break; 
     case '\'': buf.append("%27"); break; 
     case '?': buf.append("%3f"); break;     
     default: 
     buf.append(c); break; 
     } 
    } 
    web.loadData(buf.toString(), "text/html", "utf-8"); 
} 
3

J'ai fourni le fichier placé dans le dossier html actif avec le nom snipt.html. Et ce code l'affiche correctement. méthode

final WebView webView = (WebView) findViewById(R.id.webview); 
final WebSettings webSettings = webView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 
webView.loadUrl("file:///android_asset/snipt.html"); 
+0

Je l'ai fait et ça n'a pas marché. Je ne charge pas le fichier directement je charge le fichier complet en tant que dom et modifie son élément puis récupère le html. cependant quand j'ai enlevé le caractère '%' du fichier cela a bien fonctionné! –

0

Je faisais face à la même question.

résolu ce problème en appliquant le code ci-dessous

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

HttpClient httpClient = new DefaultHttpClient(); 
HttpGet httpGet = new HttpGet(location); 
HttpResponse response = httpClient.execute(httpGet); 
String data = new BasicResponseHandler().handleResponse(response); 
String base64 = android.util.Base64.encodeToString(data.getBytes("UTF-8"), android.util.Base64.DEFAULT); 
webView.loadData(base64, "text/html; charset=utf-8", "base64"); 

Cela corrigera tous les problèmes dans WebView rendu d'Android 1.5+

Sera certainement travailler pour vous!

Questions connexes