Es wurde JSAlert auf keinem Gerät angezeigt. Und dann habe ich einen WebChromeClient:WebView zeigt JSAlert auf Lollipop-Geräten nicht an
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);
}
});
Jetzt funktioniert es gut auf allen Pre-Lollipop-Geräten. Und zeigt keine Warnung auf Lollipop-Geräten.
Logcat sagt "Kann keinen Dialog erstellen, der WebView-Kontext ist keine Aktivität".
See [Zeige eine Alertdialog von einem Webview außerhalb eines Aktivität] (http://stackoverflow.com/questions/26044179/showing-an-alertdialog-from-a-webview-outside-of-an-activity) Beitrag wahrscheinlich helfen –
@ ρяσѕρєяK Ich bin schon darauf gestoßen. Es hat nicht geholfen. Gibt das gleiche Ergebnis. Ich habe in der onJSAlert-Methode Breakpoints gesetzt, um zu prüfen, ob sie tatsächlich aufgerufen werden. Und es tat es nicht. –
@SeshuVinay Führt der Debugger durch die Zeile 'return super.onJsPrompt (view, url, message, defaultValue, Ergebnis);'? Wenn ja, entfernen Sie den Superaufruf und fügen Sie einen benutzerdefinierten Dialog mit dem Kontext Ihrer äußeren Aktivität ein. – bonnyz