Estoy mostrando una página web en un WebView y en la página web, hay un botón. Cuando hace clic en el botón, se supone que debe aparecer un cuadro de diálogo de confirmación, pero no se muestra en mi WebView. Lo hace emergente si voy a la misma página web en el navegador de Android. ¿Alguien sabe cómo manejar los cuadros de diálogo emergentes que provienen de una página web dentro de su WebView?¿Cómo manejar un diálogo de confirmación de la vista web?
18
A
Respuesta
42
Ok, encontré la respuesta y aquí está!
Para gestionar una confirmación emergente proveniente de una página web en su WebView, debe anular el método onJsConfirm en WebChromeClient para mostrar la ventana emergente como un diálogo de alerta de Android. Aquí está el código para hacerlo.
final Context myApp = this;
final class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
new AlertDialog.Builder(myApp)
.setTitle("App Titler")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
result.confirm();
}
})
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
result.cancel();
}
})
.create()
.show();
return true;
}
}
No se olvide de configurar su WebChromeClient en su WebView ...
mWebView.setWebChromeClient(new MyWebChromeClient());
Nota .. esto no es mi código, pero lo encontré y funciona perfectamente para el manejo de Javascript de confirmación diálogos en un WebView!
¡Salud!
Cuestiones relacionadas
- 1. Diálogo de confirmación de Javascript
- 2. JFileChooser con diálogo de confirmación
- 3. ¿Cómo uso un cuadro de diálogo jQueryUI para confirmación?
- 4. ¿cómo crear un diálogo de confirmación en Windows Phone 7?
- 5. Cuadro de diálogo de confirmación GWT
- 6. Mostrar diálogo de confirmación en el fragmento
- 7. MVC3 Actionlink con diálogo de confirmación
- 8. Cómo deshabilitar el diálogo de confirmación de TinyMCE
- 9. ¿Hay un diálogo de confirmación incorporado en Windows Forms?
- 10. ¿Cómo hago para que mi diálogo de progreso se cierre después de cargar la vista web?
- 11. Cómo detectar un gesto de deslizamiento en la vista web
- 12. opciones personalizadas en el diálogo de confirmación de JavaScript
- 13. Cuadro de diálogo Dojo con el botón de confirmación
- 14. Cómo mostrar un cuadro de diálogo de confirmación (Primefaces) desde el bean de respaldo
- 15. ¿Cómo diseñar un CSS para un diálogo de confirmación flotante centrado?
- 16. Diálogo de confirmación en tiempo de ejecución en asp.net
- 17. Devolver el valor del cuadro de diálogo de confirmación mediante el diálogo de IU de JQuery
- 18. Eliminar ActionLink con el cuadro de diálogo de confirmación
- 19. Establecer el título del cuadro de diálogo de confirmación
- 20. ¿Cómo creo un cuadro de diálogo de confirmación en jQuery Mobile?
- 21. ¿Cómo puedo pedir confirmación a un usuario de la web si realmente quiere abandonar la página?
- 22. ¿Cómo configurar el cliente de vista web?
- 23. Cómo manejar el 'botón de retroceso' en Android cuando aparece un cuadro de diálogo de progreso
- 24. WPF - Manejar un ApplicationCommand en el modelo de vista
- 25. cómo mostrar la barra de progreso en la vista web?
- 26. Cómo obtener una vista previa de la página de confirmación de pedido
- 27. Modelo-Vista-Presentador y cuadros de diálogo Modal .... ¿Cómo?
- 28. Capturar el resultado de la ventana. Antes de descargar el diálogo de confirmación
- 29. cuadro de diálogo de confirmación de JavaScript antes de cerrar la ventana del navegador
- 30. ¿Cómo puedo manejar Javascript en un rastreador web Perl?
Tengo mvc view y Sign Out pero no funciona en el emulador de Android. Necesito ayuda en esto, –
Gracias, Brockoli ... Después de un poco de experimentación, parece que basta con devolver falso del método onJsConfirm para que la WebView muestre un cuadro de diálogo para usted, al menos en JellyBean ... El valor predeterminado WebChromeClient ya devuelve falso, por lo que 'webView.setWebChromeClient (new WebChromeClient());' hizo el trabajo por mí. – Stevie