فتح علامة تبويب مخصصة للروابط في WebView

وتُعد مكوّنات WebView رائعة لدمج محتوى الويب الخاص بك بسلاسة في تطبيقك. عندما يتضمّن محتوى الطرف الأول روابط إلى مواقع إلكترونية لا تملكها، من المنطقي فتحها في علامة تبويب مخصَّصة بدلاً من WebView. ويؤدي هذا إلى فائدتين:

  1. تكون تجربة المستخدم للطرف الأول مفصولة بوضوح عن تجربة المستخدم لمحتوى الويب التابع لطرف ثالث.
  2. تستفيد المواقع الإلكترونية التابعة لجهات خارجية من مشاركة ملفات تعريف الارتباط مع المتصفّح التلقائي.

لتنفيذ ذلك، يمكنك ضبط معالج onLoadResource مخصّص في WebViewClient:

WebView webView = (WebView)findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return true;
    }

    @Override
    public void onLoadResource(WebView view, String url) {
        if (url.startsWith("http://www.my-own-domain.com")) {
            //Handle Internal Link...
        } else {
            //Open Link in a Custom Tab
            Uri uri = Uri.parse(url);
            new CustomTabsIntent.Builder()
                  .build()
                  .launchUrl(context, uri);                            
        }
    }
});