Как обработать webview, подтверждают диалоговое окно?

Я отображаю веб-страницу в веб-представлении и на веб-странице, существует кнопка. При нажатии кнопки диалоговое окно подтверждения, как предполагается, раскрывается, но это не показывает в моем веб-представлении. Это действительно раскрывается, если я перехожу к той же веб-странице в браузере андроида. Кто-либо знает, как обработать раскрывающиеся диалоговые окна, прибывающие из веб-страницы в Вашем веб-представлении?

21
задан OMG Ponies 13 July 2011 в 18:11
поделиться

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!

Ура!

45
ответ дан 29 November 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: