He creado una aplicación que carga un sitio web con WebView. Todo funciona bien, excepto que no puedo reproducir ningún archivo de video dentro de la aplicación. Entonces, lo que busco ayuda es conseguir que mi aplicación lance el reproductor de medios cuando hago clic en un enlace que termina en .mp4. ¡Cualquier ayuda y consejo sería muy apreciado!iniciar mediaplayer en el enlace hacer clic en WebView
Respuesta
Es necesario reemplazar el método de su webViewCient shouldOverrideUrlLoading
...
final class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".mp4") {
Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(url));
view.getContext().startActivity(intent);
return true;
} else {
return super.shouldOverrideUrlLoading(view, url);
}
}
}
... que se asigna a la vista web:
WebViewClient webViewClient = new MyWebViewClient();
webView.setWebViewClient(webViewClient);
Editar: También es importante que se agrega:
webView.getSettings().setAllowFileAccess(true);
para permitir descargas de archivos/secuencias como mp 4 archivos.
¡Gracias por la respuesta rápida! He agregado el código a mi aplicación y se compila sin error ... Pero todavía no carga el reproductor cuando se hace clic en el enlace. – Kyle
Agregar webView.getSettings(). SetAllowFileAccess (true); Eso ayudará. Acabo de probarlo en mi código y funciona. –
Hola Mathias, ¡Muchas gracias por toda tu ayuda! Pude hacerlo funcionar en el Emulador. Traté de cargar la aplicación en mi teléfono con 2.2 y se inicia el navegador web y luego se cierra, lo que me devuelve a mi aplicación. Sin video en absoluto. No estoy seguro de qué podría estar mal, aparte de que estoy ejecutando el emulador en 1.5. ¿Qué piensas? – Kyle
Nota: es posible que también desee establecer el tipo de datos. Esto parece resolver algunos problemas en Android 4.0 (Ice Cream Sandwich). Por ejemplo:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "video/*");
startActivity(intent);`
gracias me ayudó –
- 1. Android WebView se cuelga al hacer clic en un enlace
- 2. Cómo deshabilitar el efecto de círculo naranja al hacer clic en un enlace, en un WebView
- 3. Forzar un enlace WebView para iniciar Safari?
- 4. Enlace WebView haga clic en abrir navegador predeterminado
- 5. Cómo interceptar hacer clic en el enlace en UITextView?
- 6. ¿Cómo obtener el enlace del iframe de Webview para iniciar el navegador?
- 7. enlace Al hacer clic con el JavaScript en Mechanize
- 8. Evitar hacer clic en el enlace mientras carga la página
- 9. desactivar el desplazamiento Al hacer clic en un enlace
- 10. Android WebView contacto evento enlace
- 11. webview no cargará archivos PDF en el enlace haga clic en
- 12. Selenio haga clic en el enlace
- 13. ¿Cómo hacer clic en un enlace y obtener su color?
- 14. jQuery: desencadenar eventos al hacer clic en un enlace Número
- 15. cambiar li activo al hacer clic en un enlace jquery
- 16. Detectar hacer clic en el botón HTML mediante javascript en Android WebView
- 17. Bloqueo de la aplicación al hacer clic en el cuadro de selección en webview
- 18. Enlace UIWebView Haga clic en
- 19. Crear dinámicamente y "hacer clic" en un enlace con jQuery
- 20. cómo hacer clic en un enlace usando cURL.?
- 21. jQuery clic en el enlace no funciona
- 22. Hacer un enlace Negrita al hacer clic con Jquery
- 23. ¿Hay alguna manera de hacer que un enlace se pueda hacer clic en el terminal OSX?
- 24. No se puede hacer clic en el enlace de imagen en el iPhone
- 25. Android WebView clic abrir en WebView no es un navegador predeterminado
- 26. Javascript: simular un clic en un enlace
- 27. ¿Al hacer clic en el elemento principal, también se puede hacer clic en el elemento secundario?
- 28. ¿Cómo hacer URL/hacer clic en el teléfono en UILabel?
- 29. Hacer clic en jquery
- 30. iniciar nueva actividad al hacer clic en el elemento de vista de lista
¿Desea utilizar su propio reproductor multimedia en su aplicación (clase MediaPlayer.java del SDK), o desea iniciar el reproductor multimedia predeterminado del sistema? –