WebViews eignen sich hervorragend für die nahtlose Integration Ihrer eigenen Webinhalte in Ihre App. Wenn Ihre eigenen Inhalte Links zu Websites enthalten, die Ihnen nicht gehören, kann es sinnvoll sein, diese auf einem benutzerdefinierten Tab statt in WebView zu öffnen. Das hat zwei Vorteile:
- Die Nutzererfahrung mit selbst erhobenen Daten unterscheidet sich deutlich von der Nutzererfahrung mit Drittanbieter-Webinhalten.
- Drittanbieter-Websites profitieren davon, dass Cookies mit dem Standardbrowser geteilt 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);
}
}
});