2017-03-17 1 views
1

Ich erstelle eine Android App, die Website hosten, die Website hat einige externe Links "URL" geladen.Verhindern, dass Webview einige URLs lädt

Also ich brauche, um einige URLs zu blockieren, die in der Datei auf /res/raw/ vom Laden in webview speichern.

Ich versuche Override shouldInterceptRequest(WebView view, String url), aber ich weiß nicht, wie es verwendet wird.

+0

Mögliches Duplikat [Block bestimmter URLs für Sicherheit in android webview] (http://stackoverflow.com/questions/10121089/block-certain-urls-for-security -in-android-webview) – Massimo

Antwort

4

können Sie shouldOverrideUrlLoading

Methode der Host-Anwendung über die Kontrolle Geben WebViewClient

verwenden, um eine Chance zu nehmen, wenn eine neue URL im Begriff ist, in dem aktuellen WebView.If WebViewClient geladen werden soll vorausgesetzt, return true bedeutet, dass die Host-Anwendung die URL behandelt, während false bedeutet, dass die aktuelle WebView die URL behandelt.

in Code:

public class MyWebViewClient extends WebViewClient { 
    public boolean shouldOverrideUrlLoading (WebView view, String url) { 
     if (Uri.parse(url).getHost().equals("http://Your_website_url")) { 
      // This is my web site, so do not override; let my WebView load the page 
      return false; 
     } 

     // reject anything other 
     return true; 
    } 
} 


mWebview.setWebViewClient(new MyWebViewClient()); //set the webviewClient 
0

Sie müssen die Methode shouldOverrideUrlLoading (siehe here) Ihrer WebViewClient überschreiben, anstatt die, die Sie überschreiben. Geben Sie einfach false zurück, wenn Sie die Seite laden möchten. true wenn Sie das Laden blockieren möchten.

+0

gut, aber in diesem Fall wie kann eine Liste der Website in der Datei –

+0

blockieren Sie müssen die Logik implementieren. Laden Sie die Liste innerhalb einer Liste und überprüfen Sie diese Liste in sumoUrideUrlLoading – Massimo

Verwandte Themen