1. Nimm jetzt an unserem AGM - Gewinnspiel teil - Informationen zum M1, A2 und A8 findest Du hier, hier und hier!
  1. klausa2, 29.11.2010 #1
    klausa2

    klausa2 Threadstarter Fortgeschrittenes Mitglied

    Problem:

    Ich bekomme von einem Server ein HTML Fragment geliefert, das ist ein String, der den HTML Regeln nicht folgt, z.B. es fehlt das <html> tag oder gleich auch noch der ganze header und das <body> tag.
    Wenn ich versuche, den String mittels loadData in einen WebView zu laden, dann wird die Seite nicht angezeigt, es gibt eine Fehlermeldung.
    Da ich viele dieser Fragemente geliefert bekomme, ich keinen Einfluss auf die Quelle habe, und Analyse+Reparatur der Fragmente keine Option ist, muss ich damit leben und sie trotzdem irgendwie zur Anzeige im WebView bringen. Das geht, denn das iPhone kann das auch.

    Ich habe nun folgendes probiert. Den String in eine Datei mit Namen test.html kopiert und die ins asset Directory gestellt (nur zum Testen), und die dann mit loadUrl im WebView geladen. Surprise!. Das Fragment wird angezeigt, wie beim iPhone.

    Meine Frage: Was ist der Unterschied beim Laden mit loadData und mit loadUrl?
    Was mir zunächst einfällt sind die zusätzlichen Parameter content-type und encoding bei loadData, die man bei loadUrl nicht angibt (und die im Fragment auch nicht enthalten sind, ebensowenig wie ein doctype). Welches sind da die Default-Werte des WebViews bei loadUrl?
    Hat jemand eine Idee, welche Parameter beim Webview ich wie ändern könnte, um meine Chanceh mit loadData zu verbessern, also den WebView toleranter gegen auch grobe Syntaxfehler zu machen?