Я показываю веб-страницу в WebView и на веб-странице, есть кнопка. При нажатии кнопки открывается окно подтверждения, но оно не отображается в моем WebView. Это всплывающее окно, если я перехожу на ту же веб-страницу в браузере Android. Кто-нибудь знает, как обрабатывать всплывающие диалоги, исходящие с веб-страницы внутри вашего WebView?
Как обрабатывать диалоговое окно подтверждения веб-просмотра?
Ответ 1
Хорошо, нашел ответ, и вот он!
Чтобы обрабатывать всплывающее подтверждение, поступающее с веб-страницы в вашем WebView, вам необходимо переопределить метод onJsConfirm в WebChromeClient, чтобы отобразить всплывающее окно в виде диалогового окна Android Alert. Вот код для этого.
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;
}
}
Не забудьте установить свой WebChromeClient в свой WebView...
mWebView.setWebChromeClient(new MyWebChromeClient());
Обратите внимание: это не мой код, но я нашел его и отлично работает для обработки диалогов подтверждения JavaScript в WebView!
Ура!