Boehrsi.de - Blog and Community

Boehrsi.de Header Image

Blogpost

Arbeiten mit der Android WebView

Arbeiten mit der Android WebView Image Arbeiten mit der Android WebView Image

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 von Google. Im Prinzip ist es recht einfach, denn ihr erstellt die WebView (WebView Dokumentation), legt die Einstellungen (WebSettings Dokumentation) und das JavaScript Interface fest (addJavascriptInterface Dokumentation) 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 und den WebViewClient 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

Abonnieren oder teilen

Ähnliche Beiträge

Kommentare

Noch keine Kommentare vorhanden.

Kommentar erstellen