在 WebView 中打开链接的自定义标签页

WebView 非常适合将您自己的 Web 内容无缝集成到您的应用中。如果您的第一方内容包含不归您所有的网站的链接,则合理的做法是在自定义标签页(而不是 WebView)中打开这些内容。这样做有两大好处:

  1. 第一方用户体验与第三方 Web 内容用户体验明显分开。
  2. 第三方网站受益于与默认浏览器共享的 Cookie。

如需实现这一点,请在 WebViewClient 中配置自定义 onLoadResource 处理程序:

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);                                     }     } });