Google shouldInterceptRequest Verfahren modifizierte WebResourceRequest Anfrage verwenden anstelle von String url
Nein, sie hat eine SekundenshouldInterceptRequest()
Methode. Beide sind in API Level 21+ verfügbar. Die String
Variante ist auf API Level 11+ verfügbar. Während die String
als veraltet gekennzeichnet ist, sollte die String
-Variante aus Gründen der Abwärtskompatibilität längere Zeit unterstützt werden.
Gibt es eine Möglichkeit, eine generische Klasse zu schreiben, die den WebViewClient erweitert und beide Methoden behandelt?
Der eingebaute bei der Umsetzung der WebResourceRequest
Version von shouldInterceptRequest()
ruft einfach die String
Implementierung von shouldInterceptRequest()
:
public WebResourceResponse shouldInterceptRequest(WebView view,
WebResourceRequest request) {
return shouldInterceptRequest(view, request.getUrl().toString());
}
(von the source code ab jetzt)
Also, haben Sie zwei Möglichkeiten :
Überschreiben Sie einfach die String
Edition, wenn Sie die WebResourceRequest
nicht benötigen, und sie wird auf allen relevanten API-Ebenen verwendet.
Überschreiben Sie beide, wissend, dass das WebResourceRequest
eines auf API Level 21+ und das String
Edition auf API Level 11-20 verwendet wird.
Danke CommonsWare, in der Tat, was ich tat, beide Methoden wurde die Implementierung und Verwendung von '@TargetApi (Build.VERSION_CODES.LOLLIPOP)' auf der einen von API21. – Krystian
Ich denke, Override String-Version sollte gut sein. –