Les WebViews sont idéales pour intégrer parfaitement votre propre contenu Web dans votre application. Lorsque votre contenu propriétaire inclut des liens vers des sites Web qui ne vous appartiennent pas, il peut être judicieux de les ouvrir dans un onglet personnalisé plutôt que dans WebView. Cela présente deux avantages:
- L'expérience utilisateur propriétaire est clairement séparée de l'expérience utilisateur du contenu Web tiers.
- Le partage de cookies avec le navigateur par défaut permet aux sites Web tiers de bénéficier de ces avantages.
Pour implémenter cela, configurez un gestionnaire onLoadResource
personnalisé dans votre 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);
}
}
});