وتُعد مكوّنات 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);
}
}
});