Ich zeige eine Webseite in einem WebView an und auf der Webseite gibt es eine Schaltfläche. Wenn Sie auf die Schaltfläche klicken, wird ein Bestätigungsdialog angezeigt, der in meinem WebView nicht angezeigt wird. Es öffnet sich, wenn ich auf die gleiche Webseite im android Browser gehe. Kann jemand mit Popup-Dialogen umgehen, die von einer Webseite in Ihrem WebView kommen?Wie wird mit einem Bestätigungsdialog für die Webansicht verfahren?
18
A
Antwort
42
Ok, die Antwort gefunden und hier ist es!
Um eine Popup-Bestätigung von einer Webseite in Ihrem WebView zu verarbeiten, müssen Sie die Methode onJsConfirm in WebChromeClient überschreiben, um das Popup als Android Alert-Dialog anzuzeigen. Hier ist der Code dafür.
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;
}
}
nicht Vergessen Sie Ihre WebChromeClient in Ihrer WebView zu setzen ...
mWebView.setWebChromeClient(new MyWebChromeClient());
Hinweis .. das ist nicht mein Code, aber ich fand es und es funktioniert perfekt für Javascript Bestätigung Handling Dialoge in einem WebView!
Prost!
Verwandte Themen
- 1. Wie wird mit einem SIGTERM verfahren?
- 2. Wie wird mit einem kleinen Limit für Chrome 18 verfahren?
- 3. Wie wird mit einem IDisposable-Repository mit Unity verfahren?
- 4. Wie wird mit mehreren Infofenstern verfahren?
- 5. Wie wird mit einem großen Strom von JSON-Wörterbüchern verfahren?
- 6. Wie wird mit leerem AliasSeq verfahren?
- 7. JFileChooser mit Bestätigungsdialog
- 8. Wie wird mit fehlerhaften Daten verfahren?
- 9. Wie wird mit vorhandenen indizierten URLs für gemischte Fälle verfahren?
- 10. Wie wird mit geladenen Bildern verfahren? Swift
- 11. Wie wird die Webansicht unter der Bildschaltfläche angezeigt?
- 12. Wie wird mit der Dateierstellung verfahren?
- 13. Wie wird mit dem Browser-Cache verfahren?
- 14. MVC3 Actionlink mit Bestätigungsdialog
- 15. Wie wird das Verfahren ausgeführt?
- 16. wie ein Verfahren schaffen für die Benutzeranmeldung
- 17. Wix - Wie wird mit Projektreferenzen verfahren, wenn die Wärmeausgabe mit Kerze verwendet wird?
- 18. Änderungsereignis für ein Dropdown ohne Bestätigungsdialog abbrechen
- 19. Wie ein modalen Bestätigungsdialog vor löscht mit glut-cli
- 20. in einem Verfahren Return null, die für mehrere Bedingungen
- 21. JQuery Bestätigungsdialog
- 22. @ModelAttribute in einem Verfahren
- 23. Knopf für eine Webansicht android
- 24. Wie testet man einen Bestätigungsdialog mit Gurke?
- 25. Was die exitContext ist für Verfahren auf einem WaitHandle.WaitOne verwendet
- 26. So aktivieren Sie die Verfalls-Header-Zwischenspeicherung für die Webansicht
- 27. Call-Verfahren mit Ref Cursor in einem anderen Verfahren
- 28. Reihenfolge von einem Verfahren
- 29. Welche Schaltfläche wurde in einem Bestätigungsdialog angeklickt
- 30. Wenn Sie sich mit FirebaseUI anmelden, wird die Webansicht nicht zurückgesetzt und der Fehler wird ausgelöst.
Ich habe MVC View und Sign Out, aber nicht auf Android Emulator arbeiten. Ich brauche Hilfe in diesem, –
Danke brockoli ... Nach ein wenig experimentieren scheint es, dass es genug ist, um nur false von der onJsConfirm Methode zurückzugeben, um den WebView einen Dialog für Sie anzeigen zu lassen - mindestens in JellyBean ... Der Standard WebChromeClient gibt bereits false zurück, also 'webView.setWebChromeClient (new WebChromeClient());' hat den Job für mich erledigt! – Stevie