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:
- A UX primária é claramente separada da UX do conteúdo da Web de terceiros.
- 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);
}
}
});