【问题标题】:Webview not showing JavaScript alertsWebview 不显示 JavaScript 警报
【发布时间】:2015-04-16 11:43:44
【问题描述】:

我们使用 android webview 构建了一个混合应用程序,我使用我的手机 (LG Nexus 4) 对其进行了测试。 android 应用程序之前用于正确显示来自网站的 JavaScript 警报,但最近它已停止显示相同的内容。

每当要从应用程序抛出警报并且没有显示任何内容时,它都会抛出以下错误。

 Cannot create a dialog, the WebView context is not an Activity

我怀疑这种行为是在 google 最近更新 WebView 组件后开始的。我现在在 Android 5.0.1 上运行,webview 版本是 40 (1832189-arm)

我会尝试回滚更新并检查,但我不能要求所有用户都这样做。是否还有其他与此类似的问题报告?有解决办法吗?

更新 我已经卸载了 WebView 组件的更新并进行了检查。警报显示正常。如果这是一个问题,我可以在哪里报告?

【问题讨论】:

  • dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);对话框.show();
  • 我认为你必须报告 Play 商店。
  • @Rah,“对话”是?
  • onJsAlert 的 AlertDialog。

标签: javascript android webview alert


【解决方案1】:

这似乎是 WebView 版本 40 中引入的错误。根据我记录的问题,它已在版本 42 中修复。

https://code.google.com/p/chromium/issues/detail?id=478204

【讨论】:

    【解决方案2】:

    要让 JavaScript 警报在 Android WebView 上工作,请添加以下代码行:

    mWebView.setWebChromeClient(new WebChromeClient());
    

    在以下代码行之后:

    webSettings.setJavaScriptEnabled(true);
    

    最后应该是这样的:

    webSettings.setJavaScriptEnabled(true);
    mWebView.setWebChromeClient(new WebChromeClient());
    

    【讨论】:

      【解决方案3】:

      这是来自JavaScript alert not working in Android WebView的答案 检查此链接和最后一条评论,您必须使用 WebChromeClient 来达到您的目的。

      http://code.google.com/p/android/issues/detail?id=752

      【讨论】:

      • 我已经添加了 WebChromeClient。这就是在早期版本的 WebView 中弹出警报的方式。但它现在不适用于升级后的 WebView。谢谢。
      猜你喜欢
      • 2011-11-17
      • 1970-01-01
      • 2014-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 2014-02-21
      相关资源
      最近更新 更多