Custom WebView de Android para abrir todos los enlaces internamente, excepto los enlaces de YouTube.

Tengo una aplicación WebView que quiero actuar así:

El usuario puede seguir cualquier enlace y la nueva página se abrirá dentro del mismo WebView, excepto si el objetivo es YouTube, en cuyo caso quiero dos posibles escenarios:

  1. Abre la aplicación YouTube para Android para ver el video.
  2. Abra el navegador estándar para ver el video.

Mi actividad principal es la siguiente:

package com.prgguru.android; import android.os.Bundle; import android.annotation.SuppressLint; import android.app.Activity; import android.webkit.WebView; @SuppressLint("SetJavaScriptEnabled") public class MainActivity extends Activity { WebView browser; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); browser=(WebView)findViewById(R.id.webkit); browser.getSettings().setJavaScriptEnabled(true); browser.getSettings().setDefaultFontSize(20); browser.loadUrl("http://exo-agency.com/funnytube/"); } } 

Gracias por adelantado.

Respuesta de user2180451 :

Acabo de editar como Respuesta:

FINALMENTE han resolver este problema.

Para cualquier persona que tenga este problema aquí es cómo consigo conseguirlo que trabaja

Aquí dejo una actividad principal de la plantilla para poner en el src> MainActivity.java llenarlo con sus urls

 /** YOUR PACKACGE NAME SHOULD GO HERE **/ import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; import android.content.Intent; import android.net.Uri; public class MainActivity extends Activity { /** Called when the activity is first created. */ @ Override public void onCreate (Bundle savedInstanceState) { super. onCreate (savedInstanceState); setContentView (R.layout.main); WebView web = (WebView) findViewById (R.id.webView); web.getSettings().setJavaScriptEnabled (true); web.getSettings().setJavaScriptCanOpenWindowsAutomatically(false); web.getSettings().setPluginsEnabled (true); web.getSettings().setSupportMultipleWindows (false); web.getSettings().setSupportZoom (false); web.setVerticalScrollBarEnabled (false); web.setHorizontalScrollBarEnabled (false); web.loadUrl ("THE URL TO YOUR WEBVIEW SITE SHOULD GO HERE"); web.setWebViewClient(new WebViewClient () { @ Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("vnd.youtube")){ startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); return true; } else { return false; } } }); } } 

Después de que en su página web real HTML aplicación web se puede llamar a la aplicación de YouTube para reproducir los videos con esta entrada

 <a href="vnd.youtube://VIDEOID">WATCH ME</a> 

Simplemente reemplace VIDEOID, con el ID de video actual del video que desea ver y al hacer clic en él, lanzará la aplicación de YouTube con el video.

Si desea una imagen en miniatura en lugar del enlace de texto para abrir el video, simplemente

  • Los controles de YouTube (reproducción / pausa) no funcionan después de restaurar el reproductor / se reanuda la actividad
  • Youtube Player Control de pantalla completa no funciona en android
  • Reproduce vídeos de Youtube en la vista de vídeo en android
  • Error de YouTubePlayerView XML
  • Implementar Youtube Subscribe Button en Android
  • Android WebView - Los vídeos de Youtube que no se reproducen dentro de la aplicación
  • Error al ejecutar 'postMessage' en el mensaje 'DOMWindow' en Android
  • la forma actual recomendada para reproducir vídeo de youtube en todos los dispositivos Android
  • Cargando video de Youtube a través de i-frame en android webview
  • Aplicación para Android de YouTube
  • ¿Cómo acceder a una lista de videos de youtube desde android usando googleapiclient?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.