Abrir uma guia personalizada para links em um WebView

As WebViews são ótimas para integrar perfeitamente seu próprio conteúdo da Web ao app. Quando seu conteúdo próprio inclui links para sites que não são seus, recomendamos que você os abra em uma guia personalizada em vez de na WebView. Isso tem dois benefícios:

  1. A UX primária é claramente separada da UX do conteúdo da Web de terceiros.
  2. Sites de terceiros se beneficiam do compartilhamento de cookies com o navegador padrão.

Para implementar isso, configure um gerenciador onLoadResource personalizado em 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);                            
        }
    }
});