Обработка оповещений в веб-просмотре - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь отобразить URL-адрес на 1-й странице приложения, но для этого URL-адреса требуется сторонний знак, который появляется как диалоговое окно с предупреждением, я пытался обработать предупреждение с помощью WebChormeClient, он отлично работает, когда я пытался с пример из w3Schools, но тот же метод не работает, когда я пытался использовать URL-адрес, есть ли способ обработать оповещения сторонних пользователей при входе в веб-просмотр?

пожалуйста, найдите код, который я использовал

    WebSettings webSettings = mywebview.getSettings();
    mywebview.setWebViewClient(new SSLTolerentWebViewClient());
    webSettings.setJavaScriptEnabled(true);
    webSettings.setLoadWithOverviewMode(true);
    webSettings.setUseWideViewPort(true);
    mywebview.setWebChromeClient(new WebChromeClient());
    mywebview.loadUrl(url);


     private class SSLTolerentWebViewClient extends WebViewClient {
       public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        handler.proceed(); // Ignore SSL certificate errors
       }
     }

Я не должен давать этот URL, представьте, что вы загружаете URL, который запрашивает у вас сторонний вход в виде предупреждения, а затем загружает страницу после успешной аутентификации.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Вы можете ниже методы в соответствии с вашими потребностями.

mywebview.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 onJsConfirm(WebView view, String url, String message, JsResult result) {
            return super.onJsConfirm(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);
        }
    });

в методах обработки Jsresult

result.cancel(); result.confirm();

в методах обработки JsPromptResult

result.cancel(); result.confirm(); result.confirm(String msg);

0 голосов
/ 29 октября 2018

В соответствии с вашим кодом, я подумал, что вы не установили следующие настройки Webviewclient и Webcromeclient для включения Javascript в Webview.

mWebView.setWebViewClient(new WebViewClient());
mWebView.setWebChromeClient(new WebChromeClient());

Затем вы загружаете свою HTML-страницу следующим кодом.

mWebView.loadUrl("file:///android_asset/"+Your_Html_Page);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...