Mở Thẻ tuỳ chỉnh cho đường liên kết trong WebView

WebView rất phù hợp để tích hợp liền mạch nội dung trên web của riêng bạn vào ứng dụng. Khi nội dung của bên thứ nhất có đường liên kết đến các trang web không thuộc sở hữu của bạn, bạn nên mở các đường liên kết đó trong Thẻ tuỳ chỉnh thay vì WebView. Việc này có hai lợi ích:

  1. Trải nghiệm người dùng của bên thứ nhất tách biệt rõ ràng với trải nghiệm người dùng nội dung trên web của bên thứ ba.
  2. Các trang web của bên thứ ba được hưởng lợi từ việc chia sẻ cookie với trình duyệt mặc định.

Để triển khai việc này, hãy định cấu hình một trình xử lý onLoadResource tuỳ chỉnh trong 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);                            
        }
    }
});