WebView लिंक खुले डिफ़ॉल्ट ब्राउज़र पर क्लिक करें


112

अभी मेरे पास एक ऐप है जो एक वेबव्यू लोड करता है और सभी क्लिक ऐप के भीतर रखे जाते हैं। जब एक निश्चित लिंक, उदाहरण के लिए, http://www.google.com को उस ऐप के भीतर क्लिक किया जाता है, जो डिफ़ॉल्ट ब्राउज़र को खोलता है। अगर किसी के पास कुछ विचार हैं तो कृपया मुझे बताएं!

जवाबों:


193

मुझे आज भी यही काम करना था और मुझे स्टैकऑवरफ्लो पर एक बहुत ही उपयोगी उत्तर मिला है जिसे मैं किसी और की आवश्यकता होने पर यहां साझा करना चाहता हूं।

स्रोत ( स्वेन से )

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
इस जवाब ने मुझे बहुत मदद की! धन्यवाद!
Android-Droid

7
ध्यान दें कि यदि url सापेक्ष है, ("http: //" से शुरू नहीं होता है) तो यह ऐप के अंदर खुल जाएगा। इससे बचने के लिए हमेशा सही वापसी करें और रिश्तेदार यूआरएल लिंक कुछ भी न करें।
जोहान एस

3
आपको उपसर्ग जैसे rtsp, https इत्यादि में अन्य प्रोटोकॉल की जांच करनी चाहिए। यदि लिंक मीडिया खोलने का इरादा रखते हैं, तो इसे डिवाइस के मीडिया प्लेयर पर रीडायरेक्ट किया जाना चाहिए। यदि कोई प्रोटोकॉल उपसर्ग नहीं है, तो पहचानें और एक प्रदान करें।
अभिनव सक्सेना

सटीक, जो मैं खोज रहा हूं। धन्यवाद
सुदर्शन

2
ध्यान दें कि shouldOverrideUrlLoading(WebView view, String url)एपीआई 24 में पदावनत किया गया है। इस उत्तर की जाँच करें
माटूस गोंडिम

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

आपको इस कोड को शामिल नहीं करना है

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

इसके बजाय यू को नीचे डी कोड का उपयोग करने की आवश्यकता है

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

आप इसके लिए इरादे का उपयोग कर सकते हैं:

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

11
आपको
बजे

10

आपको केवल निम्न पंक्ति जोड़ने की आवश्यकता है

yourWebViewName.setWebViewClient(new WebViewClient());

आधिकारिक दस्तावेज के लिए इसे जांचें ।


6

आप इसके लिए एक इरादे का उपयोग कर सकते हैं:

Uri uriUrl = Uri.parse("http://www.google.com/"); 
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);  
startActivity(launchBrowser);  
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.