Non mostrava JSAlert su nessun dispositivo. E poi ho impostato un WebChromeClient:WebView non mostra JSAlert sui dispositivi Lollipop
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message,
JsResult result) {
return super.onJsAlert(view, url, message, result);
}
@Override
public boolean onJsPrompt(WebView view, String url, String message,
String defaultValue, JsPromptResult result) {
return super.onJsPrompt(view, url, message, defaultValue,
result);
}
});
ora funziona bene su tutti i dispositivi pre-lecca-lecca. E non mostra alcun avviso sui dispositivi Lollipop.
Logcat dice "Impossibile creare una finestra di dialogo, il contesto WebView non è un'attività".
Sede [Mostrando un AlertDialog da un Webview al di fuori di un Attività] (http://stackoverflow.com/questions/26044179/showing-an-alertdialog-from-a-webview-outside-of-an-activity) post probabilmente aiuta –
@ ρяσѕρєяK Ho già incontrato questo. Non ha aiutato. Dà lo stesso identico risultato. Inserisco effettivamente punti di interruzione nel metodo onJSAlert per verificare se è effettivamente chiamato. E non è stato così. –
@SeshuVinay Il debugger passa attraverso la riga 'return super.onJsPrompt (view, url, message, defaultValue, result);'? Se sì, rimuovi la super chiamata e metti una finestra di dialogo personalizzata usando il contesto della tua attività esterna. – bonnyz