webentwicklung-frage-antwort-db.com.de

WebView-Link Klicken Sie auf Standardbrowser öffnen

Im Moment habe ich eine App, die eine Webansicht lädt und in der alle Klicks gespeichert sind. Was ich tun möchte, ist, wenn ein bestimmter Link, z. B. http://www.google.com , in der App angeklickt wird, wird der Standardbrowser geöffnet. Wenn jemand Ideen hat, lass es mich wissen!

101
Kyle

Ich musste heute dasselbe tun und habe auf StackOverflow eine sehr nützliche Antwort gefunden, die ich hier teilen möchte, falls jemand anderes sie benötigt.

Quelle (von sven )

webView.setWebViewClient(new WebViewClient(){
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url != null && (url.startsWith("http://") || url.startsWith("https://"))) {
            view.getContext().startActivity(
                new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
            return true;
        } else {
            return false;
        }
    }
});
178
WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl(https://whatoplay.com/);

sie müssen diesen Code nicht einfügen

// webview.setWebViewClient(new WebViewClient());

stattdessen müssen Sie unten d-Code verwenden

webview.setWebViewClient(new WebViewClient()
{
  public boolean shouldOverrideUrlLoading(WebView view, String url)
  {
    String url2="https://whatoplay.com/";
     // all links  with in ur site will be open inside the webview 
     //links that start ur domain example(http://www.example.com/)
    if (url != null && url.startsWith(url2)){
      return false;
    } 
     // all links that points outside the site will be open in a normal Android browser
    else
    {
      view.getContext().startActivity(
      new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
      return true;
    }
  }
});
30

sie können dafür Intent verwenden:

Intent browserIntent = new Intent("Android.intent.action.VIEW", Uri.parse("your Url"));
startActivity(browserIntent);
11
Piyush

Sie müssen nur die folgende Zeile hinzufügen

yourWebViewName.setWebViewClient(new WebViewClient());

Aktivieren Sie this für offizielle Dokumentation.

9
b1programmer

Sie können hierfür einen Intent verwenden:

Uri uriUrl = Uri.parse("http://www.google.com/"); 
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);  
startActivity(launchBrowser);  
6
BasavRaj