רכיבי WebView מתאימים במיוחד לשילוב חלק של תוכן אינטרנט משלכם באפליקציה. אם התוכן מאינטראקציה ישירה כולל קישורים לאתרים שלא בבעלותכם, כדאי לפתוח אותם בכרטיסייה מותאמת אישית במקום ב-WebView. יש לכך שני יתרונות:
- חוויית המשתמש מאינטראקציה ישירה מופרדת בבירור מחוויית המשתמש בתוכן האינטרנט של הצד השלישי.
- אתרי אינטרנט של צד שלישי מפיקים תועלת משיתוף קובצי Cookie עם דפדפן ברירת המחדל.
כדי להטמיע את זה, צריך להגדיר handler 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); } } });