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

WebView là lựa chọn tuyệt vời để tích hợp liền mạch nội dung trên web của bạn vào ứng dụng. Khi nội dung bên thứ nhất của bạn có chứa đường liên kết đến trang web mà bạn không sở hữu, bạn nên mở những đường liên kết này 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 được tách biệt rõ ràng với trải nghiệm người dùng nội dung web của bên thứ ba.
  2. Trang web của bên thứ ba được hưởng lợi từ việc cookie được chia sẻ 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));                            
        }
    }
});