WebViews eignen sich hervorragend zur nahtlosen Integration Ihrer eigenen Webinhalte in Ihre App. Wenn Ihre eigenen Inhalte Links zu Websites enthalten, die nicht Ihnen gehören, kann es sinnvoll sein, diese auf einem benutzerdefinierten Tab statt in WebView zu öffnen. Dies hat zwei Vorteile:
- Die Erstanbieter-UX ist klar von der UX der Drittanbieter-Webinhalte getrennt.
- Websites von Drittanbietern profitieren davon, dass Cookies für den Standardbrowser freigegeben werden.
Konfigurieren Sie einen benutzerdefinierten onLoadResource
-Handler in Ihrer WebViewClient
, um dies zu implementieren:
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);
}
}
});