Las WebViews son excelentes para integrar sin problemas tu propio contenido web en tu app. Cuando tu contenido de origen incluye vínculos a sitios web de los que no eres propietario, tiene sentido abrirlos en una pestaña personalizada en lugar de la WebView. Esto tiene dos beneficios:
- La UX de origen está claramente separada de la UX de contenido web de terceros.
- Los sitios web de terceros se benefician de que las cookies se compartan con el navegador predeterminado.
Para implementar esto, configura un controlador onLoadResource
personalizado en tu 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); } } });