2016-05-23 3 views
0

In meiner Anwendung möchte ich die URL auf eine Reihe von Domänen beschränken. Zum Beispiel, wenn ich es ein Domäne beschränken mag, dies funktioniert:Android: Beschränken Sie die Webansicht auf eine Reihe von URLs

@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    if(Uri.parse(url).getHost().endsWith("stackoverflow.com")) { 
     return false; 
    } 

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
    view.getContext().startActivity(intent); 
    return true; 
} 

So wie ändere ich diese Zeile:

if(Uri.parse(url).getHost().endsWith("stackoverflow.com")) 

eine Reihe von URLs, um die weißen Liste, wie:

stackoverflow.com 
stackexchange.com 
google.com 
+0

Ich denke, alle URLs in Arraylist hinzufügen und 'if (urlList.contains (Uri.parse (url) .getHost())) {return false} else {// offene Seite}' –

Antwort

1

Ich denke, der schnellste Weg ist, eine Liste Ihrer "White Label" Hosts zu halten.

List<String> whiteHosts = Arrays.asList("stackoverflow.com", "stackexchange.com", "google.com"); 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     String host = Uri.parse(url).getHost(); 
    if(whiteHosts.contains(host) { 
     return false; 
    } 

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
    view.getContext().startActivity(intent); 
    return true; 
} 
+0

Thank you very viel, funktioniert perfekt! –