【问题标题】:Is there a way to convert Javascript alerts to show as Toast in Android WebView?有没有办法将 Javascript 警报转换为在 Android WebView 中显示为 Toast?
【发布时间】:2020-11-14 11:41:58
【问题描述】:

我有一个 Web 应用程序,它可以在大多数页面上使用 Javascript 警报。现在我最近为同一个应用程序创建了一个 WebView 应用程序。该应用程序运行良好,警报显示。

我见过一些解决方案,建议将 JavaScript 代码绑定到 Android 代码,然后调用这些方法,例如显示 toast。

我毫不怀疑这是可行的,但现在,对我来说,这意味着我必须重新编写触发这些警报的代码。

我的问题是,有没有办法自动捕获所有警报并将其内容显示为 toast?

【问题讨论】:

    标签: android android-webview android-toast


    【解决方案1】:

    您可以使用 WebChromeClient:
    https://developer.android.com/reference/android/webkit/WebChromeClient

    创建它的一个实例,将其设置为您的网络视图,然后覆盖 onJsAlert
    请务必阅读文档,以返回正确的值,这样它也不会显示 javascript 警报。

    【讨论】:

      【解决方案2】:

      感谢Moonbloom's answerthis answer also。我设法提供了一个完全符合我要求的解决方案。因此,对于将来会偶然发现同样问题的任何人,下面的 sn-p 适合您:

      
              mWebView.setWebChromeClient(new WebChromeClient() {
                  @Override
                  public boolean onJsAlert(WebView view, String url, String message,
                                           final JsResult result) {
                      Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
                      result.confirm();
                      return true;
                  }
              });
      

      mWebView 是一个 WebView 实例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-02
        • 2013-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-19
        • 2014-11-06
        相关资源
        最近更新 更多