Boehrsi.de - IT und Gaming Blog

Arbeiten mit der Android WebView

Arbeiten mit der Android WebView Bild

Ich arbeite sowohl in meinen privaten Projekten, wie auch professionell, mit der Android WebView. Dabei hat sich eine gewisse Hass-Liebe entwickelt. Denn zum einen bietet die WebView eine gute und schnelle Möglichkeit HTML Content anzuzeigen und das direkt im Umfeld der eigenen App. Auf der anderen Seite sollte man aber auch einige Dinge beachten. Dazu gehört unter anderem:
Niemand fasst den Draw-Cycle der WebView an, das Layout der WebView gehört einzig und allein der WebView, die WebView akzeptiert kein / sehr wenig anderes Scroll-Handling und verschiedene Android Versionen haben verschiedene WebViews und dies muss man einfach akzeptieren. Die Liste geht weiter und im Allgemeinen sollte man einfach versuchen der WebView nicht in ihre internen Abläufe zu springen. Ich tue dies hin und wieder trotzdem und muss meine Gehirnwindungen dann durchaus malträtieren, um vielleicht eine Lösung zu finden.

Solltet ihr Web Content anzeigen und vielleicht sogar mit enthaltenem JavaScript kommunizieren wollen, schaut einfach mal in das hier verlinkte Tutorial open_in_new von Google. Im Prinzip ist es recht einfach, denn ihr erstellt die WebView (WebView Dokumentation open_in_new), legt die Einstellungen (WebSettings Dokumentation open_in_new) und das JavaScript Interface fest (addJavascriptInterface Dokumentation open_in_new) und schon geht es los. Ihr ladet eine interne HTML Datei mit JavaScript und diese kann dann mit eurer Android App kommunizieren. Falls Zugriff auf externe Seiten gewünscht ist kann die android.permission.INTERNET Berechtigung helfen.
Eine Sache die meiner Meinung nach in Googles Tutorial fehlt, ist die Kommunikation von Android zur WebView, denn auch dies ist möglich. Dafür müsst ihr ein entsprechendes Interface in eurem JavaScript Code definieren und dann die Methode public void evaluateJavascript(String script, ValueCallback resultCallback) auf der WebView aufrufen. Wie man sieht ist auch ein Callback vorhanden, sodass ihr auch Ergebnisse eurer Anfragen erhalten könnt.
Tiefergehend könnt ihr auf den Ladezustand der WebView hören, Requests anpassen oder umleiten und eine Navigation für die WebView einbinden. Letzteres wird ebenfalls in Googles kurzem Tutorial abgearbeitet. Vor allem falls ihr komplexere Dinge umsetzen wollt, schaut euch unbedingt den WebChromeClient open_in_new und den WebViewClient open_in_new an. Diese bieten verschiedene Funktion die extrem hilfreich sind, was sich ebenfalls auf den oben erwähnten Ladezustand der WebView bezieht, wie auch auf das Umleiten von Requests.

Related Links
keyboard_arrow_left Vorheriger Beitrag
Google Files Go
Nächster Beitrag keyboard_arrow_right
Guten Rutsch ins Jahr 2018
Teilen und RSS-Feeds abonnieren
Twitter Facebook RSS
Kommentare
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden.