ওয়েবভিউ লিঙ্ক ওপেন ডিফল্ট ব্রাউজারে ক্লিক করুন


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
এই উত্তরটি আমাকে অনেক সাহায্য করেছে! ধন্যবাদ!
অ্যান্ড্রয়েড -ড্রয়েড

7
মনে রাখবেন যে ইউআরএলটি যদি আপেক্ষিক হয় তবে ("http: //" দিয়ে শুরু হয় না) তবে এটি অ্যাপের অভ্যন্তরে খুলবে। এটি এড়াতে সর্বদা সত্য ফিরে আসে এবং আপেক্ষিক ইউআরএল লিঙ্কগুলি কিছুই না করে।
জোহান এস

3
আরটিএসপি, https ইত্যাদির মতো উপসর্গের অন্যান্য প্রোটোকলগুলির জন্য আপনার পরীক্ষা করা উচিত। লিঙ্কগুলি যদি কোনও মিডিয়া খোলার উদ্দেশ্যে থাকে, তবে এটি ডিভাইসের মিডিয়া প্লেয়ারে পুনঃনির্দেশ করা উচিত। যদি কোনও প্রোটোকল উপসর্গ না থাকে, তবে একটি সনাক্ত করুন এবং সরবরাহ করুন।
অভিনব সাক্সেনা

ঠিক, আমি যা অনুসন্ধান করছি searching ধন্যবাদ
সুদর্শন

2
নোট যা shouldOverrideUrlLoading(WebView view, String url)এপিআই 24 এ অবমূল্যায়িত হয়েছে this এই উত্তরটি দেখুন
ম্যাটিউস গন্ডিম

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
আপনি Intent.ACTION_VIEW ব্যবহার করা উচিত
rajh2504

10

আপনাকে কেবল নিম্নলিখিত লাইনটি যুক্ত করতে হবে

yourWebViewName.setWebViewClient(new WebViewClient());

পরীক্ষা করে দেখুন এই কর্মকর্তা নথিপত্রের জন্য।


6

আপনি এটির জন্য একটি উদ্দেশ্য ব্যবহার করতে পারেন:

Uri uriUrl = Uri.parse("http://www.google.com/"); 
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);  
startActivity(launchBrowser);  
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.