2016-10-24 4 views
0

Ich habe eine Webansicht mit einem benutzerdefinierten Webview-Client. Ich abfangen Anfragen mit:Android-Webansicht - Wie URL überspringen?

@Override 
public WebResourceResponse shouldInterceptRequest(WebView view, String url) { 
    // ... 
} 

manchmal erhalte ich Informationen über benutzerdefinierte Ereignisse von Webansicht in Form eines Link:

xyz: // do-etwas

Wenn es passiert, möchte ich Webview es ignorieren. Aber 'sentInterceptRequest' muss etwas zurückgeben, und wenn ich 'null' anstelle meiner Seite zurückgebe, wird 'unbekanntes URL xyz: // do-something' angezeigt. Wie kann ich damit umgehen? Wie kann ich den Link abfangen, aber die Aktion auf der Webseite deaktivieren?

Antwort

0

Sie müssen nur einen Zeichenfolgenvergleich von der Website, in der Sie sich befinden, und von der Website, zu der Sie wechseln möchten.

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (Uri.parse(url).getHost().equals("www.example.com")) { 
      // This is my web site, so do not override; let my WebView load the page 
      return false; 
     } 
     // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
     startActivity(intent); 
     return true; 
    } 
+0

Ich kann nicht 'public boolean shouldOverrideUrlLoading (WebView Ansicht, String url)' verwenden, hat es öffentlich WebResourceResponse shouldInterceptRequest (WebView Ansicht, String url) 'sein. – user5981074

Verwandte Themen