Boehrsi.de - IT und Gaming Blog

Arbeiten mit der Android WebView

Erstellt am event Uhr von account_circle Boehrsi in label Development
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
Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.