وتُعد مكوّنات WebView رائعة لدمج محتوى الويب الخاص بك بسلاسة في تطبيقك. عندما يتضمّن محتوى الطرف الأول روابط إلى مواقع إلكترونية لا تملكها، من المنطقي فتحها في علامة تبويب مخصَّصة بدلاً من WebView. ويؤدي هذا إلى فائدتين:
- تكون تجربة المستخدم للطرف الأول مفصولة بوضوح عن تجربة المستخدم لمحتوى الويب التابع لطرف ثالث.
- تستفيد المواقع الإلكترونية التابعة لجهات خارجية من مشاركة ملفات تعريف الارتباط مع المتصفّح التلقائي.
لتنفيذ ذلك، يمكنك ضبط معالج onLoadResource
مخصّص في 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);
}
}
});