Android WebViewClient с JavaScript-оповещениями / подсказками - PullRequest
0 голосов
/ 11 декабря 2018

У меня возникла следующая проблема: Мой веб-сайт мне подсказывает всплывающее окно JavaScript

JS Popup Form

Мне нужно создать эту оболочку для веб-сайта иМне нужно как-то обработать этот диалог.Я пытался использовать ChromeWebView Client, но мой сайт не загружается с ним.Я попытался добавить клиентов WebView и ChromeWebView в мой WebView, но он все еще не работает.Вот мой код:

        String text = getIntent().getStringExtra("currentUrl");
    this.myWebView.loadUrl(text);

    WebViewClient webViewClientProceedSSL = new ProceedSSLClient(myWebView);
    this.myWebView.setWebViewClient(webViewClientProceedSSL);
    this.myWebView.setWebChromeClient(new WebChromeClient());

У вас есть какие-либо идеи, как мне это исправить?

Редактировать 1: Я забыл добавить свои настройки WebView.Вот они:

    webSettings.setJavaScriptEnabled(true);
    webSettings.setAppCacheEnabled(true);
    webSettings.setDomStorageEnabled(true);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    webSettings.setGeolocationEnabled(true);
    webSettings.setDomStorageEnabled(true);

Редактировать 2:

Я пытался переопределить оба метода onJsAlert и onJsPrompt в классе WebChromeClient при установке его в webView.Это тоже не работает ...

  myWebView.setWebChromeClient(new WebChromeClient() {
        @Override
        public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
            return super.onJsAlert(view, url, message, result);
        }
    });

Я вообще не использую этот метод - я попытался что-то записать в него и отладить.Я никогда не входил.

1 Ответ

0 голосов
/ 11 декабря 2018

Добавьте следующее в Webview

webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setJavaScriptEnabled(true);

Также попробуйте добавить этот метод в WebViewClient

webview.setWebChromeClient(new WebChromeClient() {
   @Override
   public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
   //Required functionality here
      return super.onJsAlert(view, url, message, result);
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...