Vorwort
Kürzlich gibt es viele Interaktionen mit WebView.
Verwenden Sie WebViewClient
Die Verwendung von WebViewClinet erbt hauptsächlich die WebViewClient -Klasse, schreiben Sie die Methode nach Bedarf neu und konfigurieren Sie sie in WebView.
webView = (WebView) findViewById (R.Id.WebView); } @Override public boolean shoulriderideurlloading (WebView -Ansicht, String url) {view.loadurl (URL); OnloadRSource (WebView -Ansicht, String -URL) {Super.onloadResource (Ansicht, URL);
WebViewClient -Methode
1. STATTOVERRIDEURLINGOADING (WebView -Ansicht, String -URL)
Offizieller Hinweis: Geben Sie der Host -Anwendung die Möglichkeit, die Kontrolle zu übernehmen, wenn eine neue URL im aktuellen WebView geladen wird. URL.
Übersetzung: Wenn eine neue URL die aktuelle WebView laden soll, bietet diese Methode der Anwendung die Möglichkeit, die Verarbeitung von URL zu steuern. Wenn WebView nicht setWebViewClient enthält, wird der Standardvorgang von WebView den Aktivitätsmanager aufgefordert, die rechte Handler -Verarbeitungs -URL zu erhalten. Wenn WebView SetWebViewClient festgelegt wird, wird die aktuelle Anwendung zur Verarbeitung von URL zurückgegeben und false zurückgegeben, um die aktuelle WebView zur Verarbeitung von URL darzustellen. Wenn die HTTP -Anforderung die Post -Methode ist, wird die Methode nicht aufgerufen.
Codebeispiel:
/*** Alle URL rufen den Systembrowser auf, der mit www.example.com beginnt, um andere URLs in der aktuellen WebView zu öffnen. {// Das System standardmäßig die Browser -Verarbeitung ansehen.Stoploading ();
2. ShouleOverrideKeyEvent (Webview -Ansicht, KeyEvent -Ereignis)
Offizieller Hinweis: Geben Sie der Hostanwendung eine Änderung, um den Schlüssel zu verarbeiten. das Schlüsselereignis.
Übersetzung: Geben Sie die aktuelle Anwendung der Möglichkeit, wichtige Ereignisse asynchron zu behandeln. Rückgabe true und webView wird das Schlüsselereignis nicht verarbeiten, return false, WebView verarbeitet das Schlüsselereignis. Die Standardrendite ist falsch.
3.. Onpagestarted (WebView -Ansicht, String -URL, Bitmap Favicon) und OnPageFineSted (WebView -Ansicht, String -URL)
Offizieller Hinweis: Benachrichtigen Sie die Host -Anwendung, die eine Seite geladen hat. Von einem eingebetteten Rahmen ändert sich dh ein Link, dessen Ziel ein Iframe ist.
Übersetzung: Es wird aufgerufen, wenn die Seite mit dem Laden beginnt. Wenn die Seite jedoch verschachtelt ist (z. B. ein Linksprung in Iframe), wird diese Methode nicht aufgerufen. (Dies ist heute der Fall, Sie können den URL -Sprung steuern, indem Sie OnloadResource neu laden)
Offizielle Anmerkung: Benachrichtigen Sie die Host -Anwendung, die eine Seite beendet hat.
Übersetzung: Es wurde am Ende der Seite geladen.
Codebeispiel:
// Holen Sie sich die Ladezeit der Seite
Privates Startzeit; , "Zeit ist:" + Ausgebene, toast.length_short) .show ();}} @Override public void onpaagestarted (WebView -Ansicht, String -URL, Bitmap Favicon) {startti me = system.currentTimillis ();}
V.
Offizieller Hinweis: Benachrichtigen Sie die Host -Anwendung, die in der WebView die durch die angegebene URL angegebene Ressource lädt.
Übersetzung: Benachrichtigen Sie die Anwendung WebView, um die angegebenen URL -Ressourcen jeder Ressource (wie Bilder, verschachtelte URL, JS, CSS -Dateien) zu laden. (Sie können die iFrame -verschachtelte URL über diese Methode bewältigen)
Codebeispiel:
@Override public void Ondresource (WebView -Ansicht, String url) {if (url.indexof ("http://www.example.com")! = -1 && view! = Null) plading (); Startaktivität