Open een aangepast tabblad voor koppelingen in een webweergave

WebViews zijn ideaal voor het naadloos integreren van uw eigen webinhoud in uw app. Wanneer uw eigen inhoud links bevat naar websites die niet uw eigendom zijn, kan het zinvol zijn deze op een aangepast tabblad te openen in plaats van in de WebView. Dit heeft twee voordelen:

  1. De UX van de eerste partij is duidelijk gescheiden van de UX van de 3P-webinhoud.
  2. Websites van 3P profiteren van cookies die worden gedeeld met de standaardbrowser.

Om dit te implementeren, configureert u een aangepaste onLoadResource -handler in uw 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));                            
        }
    }
});