【问题标题】:Android WebViewClient with JavaScript Alerts/Prompt带有 JavaScript 警报/提示的 Android WebViewClient
【发布时间】:2018-12-11 14:59:30
【问题描述】:

我遇到以下问题: 我的网站我用这个 JavaScript 弹出窗口提示我

JS Popup Form

我需要为网站创建这个包装器,并且我需要以某种方式处理这个对话框。 我曾尝试使用 ChromeWebView 客户端,但我的网站根本没有加载它。 我尝试将 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:

在将 WebChromeClient 类设置为 webView 时,我曾尝试覆盖这两个方法 onJsAlert 和 onJsPrompt。这也不行……

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

我根本没有使用那种方法 - 我尝试在其中记录一些内容并对其进行调试。我从来没有进去过。

【问题讨论】:

  • 你确定没有办法在我的网络视图中显示表单。如果没有办法,你能告诉我什么时候应该创建那个请求,我该怎么做?跨度>
  • 对不起,我错误地阅读了这个问题。你试过webview.setJavaScriptEnabled(true) 吗??
  • webSettings.setJavaScriptEnabled(true); webSettings.setAppCacheEnabled(true); webSettings.setDomStorageEnabled(true); webSettings.setJavaScriptCanOpenWindowsAutomatically(true); webSettings.setGeolocationEnabled(true); webSettings.setDomStorageEnabled(true);
  • @Toaster 有我的设置
  • 我认为您需要覆盖 onJsAlert() 并通过扩展 web-chrome 客户端进行修改

标签: javascript java android webview


【解决方案1】:

将以下内容添加到 Web 视图中

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);
   }
});

【讨论】:

  • 嗨,我已将设置添加到我的问题中。这对我不起作用..
  • 我已经编辑了答案。检查并尝试一次。 @IvelinIliev
  • 我试过了。覆盖 onJsAlert 和/或 onJsPrompt。这里又没有成功..
  • 您是否尝试过其他网站?如果不是个人的,我想检查一下网站。尝试在移动浏览器中打开该网站。 @IvelinIliev
  • 对不起,我正在使用 VPN 连接访问该网站,您将无法打开它。当我在我的移动 chrome 浏览器中打开它时,我正在弹出那个弹出窗口。当用我的 android webView 打开时,我什么也没得到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多