Sto visualizzando una pagina Web in una WebView e nella pagina Web, c'è un pulsante. Quando si fa clic sul pulsante, si suppone che venga visualizzata una finestra di conferma, ma non viene visualizzata nella mia WebView. Fa popup se vado alla stessa pagina web nel browser Android. Qualcuno sa come gestire i dialoghi popup provenienti da una pagina Web all'interno della tua WebView?Come gestire una finestra di dialogo per confermare la webview?
18
A
risposta
42
Ok, ho trovato la risposta ed eccola!
Per gestire una conferma popup proveniente da una pagina Web in WebView, è necessario sovrascrivere il metodo onJsConfirm in WebChromeClient per visualizzare il popup come una finestra di avviso Android. Ecco il codice per farlo.
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;
}
}
Non dimenticare di impostare il WebChromeClient nella WebView ...
mWebView.setWebChromeClient(new MyWebChromeClient());
Nota .. questo non è il mio codice, ma ho trovato e funziona perfettamente per la gestione di javascript conferma finestre di dialogo in una WebView!
Cheers!
Problemi correlati
- 1. MATLAB: immettere per confermare la finestra di dialogo di input?
- 2. scelte personalizzate in javascript confermare la finestra di dialogo
- 3. JQuery confermare dialogo
- 4. Controllo premere "pulsante indietro" e disabilitare chiudere l'applicazione utilizzando una finestra di dialogo per confermare - wp7
- 5. Come visualizzare una finestra di dialogo di avanzamento mentre la pagina HTML viene caricata in WebView
- 6. Utilizzo della finestra di dialogo ui jquery per confermare l'azione per l'invio del modulo
- 7. android: webview all'interno della finestra di dialogo o popup
- 8. Come gestire l'autenticazione di base in WebView
- 9. Come abbandonare la trasparenza di una finestra di dialogo PrimeFaces?
- 10. Aggiunta di una finestra di dialogo di avanzamento in una webview
- 11. Come spostare una finestra di dialogo Winform
- 12. Come creare una finestra di dialogo JavaFX?
- 13. Come visualizzare una finestra di dialogo per confermare l'eliminazione quando l'utente preme a lungo sulla voce dell'elenco?
- 14. Come si usa una finestra di dialogo jQueryUI per conferma?
- 15. Finestra di dialogo come finestra principale?
- 16. Come impostare l'icona per la finestra di dialogo in Android
- 17. IME per Android: come visualizzare una finestra di dialogo popup?
- 18. Come gestire il "pulsante Indietro" su Android quando viene visualizzata una finestra di dialogo di avanzamento
- 19. Finestra di dialogo dell'interfaccia utente Jquery al posto di javascript confermare
- 20. gtk visualizzazione di una finestra di dialogo all'interno di una finestra di dialogo
- 21. come ottenere l'ID per aprire la finestra di dialogo
- 22. dialogo jquery: confermare il clic su un pulsante di invio
- 23. Usa JavaScript dialogo confermare per effettuare una chiamata di PHP in background
- 24. jQuery finestra di dialogo modale e finestra di dialogo CKEditor
- 25. Perché la chiusura di una finestra di dialogo figlio nidificata chiude anche la finestra di dialogo principale?
- 26. La finestra di dialogo Feed FB.ui richiede redirect_uri, la finestra di dialogo non viene chiusa
- 27. Animazione di una finestra di dialogo personalizzata
- 28. Finestra di Outlook Sfoglia la finestra di dialogo?
- 29. JQGrid all'interno di una finestra di dialogo
- 30. come impostare un titolo diverso per la finestra di avviso quando viene caricata la pagina WebView?
Ho vista mvc e Sign Out ma non funziona su emulatore android. Ho bisogno di aiuto in questo, –
Grazie brockoli ... Dopo un po 'di sperimentazione sembra che sia sufficiente restituire false dal metodo onJsConfirm per fare in modo che WebView visualizzi una finestra di dialogo per voi - almeno in JellyBean ... L'impostazione predefinita WebChromeClient restituisce già false, quindi 'webView.setWebChromeClient (new WebChromeClient());' ha fatto il lavoro per me! – Stevie