یک برگه سفارشی برای پیوندهای موجود در WebView باز کنید

WebViews برای ادغام یکپارچه محتوای وب خود در برنامه شما عالی هستند. وقتی محتوای شخص اول شما شامل پیوندهایی به وب‌سایت‌هایی است که متعلق به شما نیستند، باز کردن آنها در یک برگه سفارشی به جای WebView می‌تواند منطقی باشد. این دو فایده دارد:

  1. UX شخص اول به وضوح از UX محتوای وب 3P جدا است.
  2. وب سایت های 3P از اشتراک گذاری کوکی ها با مرورگر پیش فرض سود می برند.

برای پیاده سازی این، یک کنترل کننده سفارشی 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);                            
        }
    }
});