I componenti WebView sono ideali per integrare perfettamente i tuoi contenuti web nella tua app. Quando i tuoi contenuti proprietari includono link a siti web che non sono di tua proprietà, può avere senso aprirli in una scheda personalizzata anziché in WebView. Ciò presenta due vantaggi:
- L'esperienza utente proprietaria è chiaramente separata dalla UX dei contenuti web di terze parti.
- I siti web di terze parti traggono vantaggio dalla condivisione dei cookie con il browser predefinito.
Per implementarlo, configura un gestore onLoadResource
personalizzato in 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);
}
}
});