Tautan WebView klik buka browser default


112

Saat ini saya memiliki aplikasi yang memuat tampilan web dan semua klik disimpan di dalam aplikasi. Yang ingin saya lakukan adalah ketika tautan tertentu, misalnya, http://www.google.com diklik di dalam aplikasi itu membuka browser default. Jika ada yang punya ide tolong beri tahu saya!

Jawaban:


193

Saya harus melakukan hal yang sama hari ini dan saya telah menemukan jawaban yang sangat berguna di StackOverflow yang ingin saya bagikan di sini jika orang lain membutuhkannya.

Sumber (dari 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;
        }
    }
});

3
jawaban ini sangat membantu saya! Terima kasih!
Android-Droid

7
Perhatikan bahwa jika urlnya relatif, (tidak dimulai dengan "http: //") maka url akan terbuka di dalam aplikasi. Untuk menghindarinya, selalu kembalikan true dan buat tautan url relatif tidak melakukan apa pun.
Johan S

3
Anda harus memeriksa protokol lain di awalan seperti rtsp, https, dan sebagainya. Jika tautan dimaksudkan untuk membuka media, itu harus dialihkan ke pemutar media perangkat. Jika tidak ada prefiks protokol, maka identifikasi dan berikan satu.
Abhinav Saxena

Tepat, apa yang saya cari. Terima kasih
Sudarshan

2
Perhatikan bahwa shouldOverrideUrlLoading(WebView view, String url)sudah usang dalam API 24. Periksa jawaban ini .
Mateus Gondim

35
WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl(https://whatoplay.com/);

Anda tidak perlu memasukkan kode ini

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

sebagai gantinya kamu perlu menggunakan kode d di bawah ini

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;
    }
  }
});

11

Anda dapat menggunakan Intent untuk ini:

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

11
Anda harus menggunakan Intent.ACTION_VIEW
rajh2504

10

Anda hanya perlu menambahkan baris berikut

yourWebViewName.setWebViewClient(new WebViewClient());

Periksa ini untuk dokumentasi resmi.


6

Anda dapat menggunakan Intent untuk ini:

Uri uriUrl = Uri.parse("http://www.google.com/"); 
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);  
startActivity(launchBrowser);  
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.