web-dev-qa-db-fra.com

Lien WebView cliquez sur ouvrir le navigateur par défaut

À l'heure actuelle, j'ai une application qui charge une vue Web et tous les clics sont conservés dans l'application. Ce que je voudrais faire, c'est quand un certain lien, par exemple, http://www.google.com est cliqué dans l'application, il ouvre le navigateur par défaut. Si quelqu'un a des idées s'il vous plaît faites le moi savoir!

101
Kyle

Je devais faire la même chose aujourd'hui et j'ai trouvé une réponse très utile sur StackOverflow que je souhaite partager ici au cas où quelqu'un d'autre en aurait besoin.

Source (de 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
Amokrane Chentir
WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl(https://whatoplay.com/);

vous n'avez pas à inclure ce code

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

à la place, vous devez utiliser le code d ci-dessous

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
Cristiana Chavez

vous pouvez utiliser l'intention pour cela:

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

Il vous suffit d'ajouter la ligne suivante

yourWebViewName.setWebViewClient(new WebViewClient());

Vérifiez this pour la documentation officielle.

9
b1programmer

Vous pouvez utiliser une intention pour cela:

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