เปิดแท็บที่กำหนดเองสำหรับลิงก์ใน WebView

WebView เป็นวิธีที่ยอดเยี่ยมในการผสานรวมเนื้อหาเว็บลงในแอปอย่างราบรื่น เมื่อเนื้อหาของบุคคลที่หนึ่งมีลิงก์ไปยังเว็บไซต์ที่คุณไม่ได้เป็นเจ้าของ เราขอแนะนำให้เปิดเนื้อหาเหล่านี้ในแท็บที่กำหนดเองแทน WebView ซึ่งมีประโยชน์ 2 ข้อดังนี้

  1. UX ของบุคคลที่หนึ่งจะแยกจาก UX เนื้อหาเว็บ 3P อย่างชัดเจน
  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));                            
        }
    }
});