Webview 未显示 JavaScript 警报
Webview not showing JavaScript alerts
我们使用 android webview 构建了一个混合应用程序,我使用 phone (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 组件的更新并进行了检查。警报显示正常。如果这是一个问题,我可以在哪里报告?
这是来自JavaScript alert not working in Android WebView的回答
检查此 link 和最后一条评论,您必须为您的目的使用 WebChromeClient。
这似乎是 WebView build 40 中引入的错误。根据我记录的问题,它已在版本 42 中修复。
要在 Android WebView 上获取 JavaScript 警报,请添加以下代码行:
mWebView.setWebChromeClient(new WebChromeClient());
在以下代码行之后:
webSettings.setJavaScriptEnabled(true);
最后应该是这样的:
webSettings.setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());
我们使用 android webview 构建了一个混合应用程序,我使用 phone (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 组件的更新并进行了检查。警报显示正常。如果这是一个问题,我可以在哪里报告?
这是来自JavaScript alert not working in Android WebView的回答 检查此 link 和最后一条评论,您必须为您的目的使用 WebChromeClient。
这似乎是 WebView build 40 中引入的错误。根据我记录的问题,它已在版本 42 中修复。
要在 Android WebView 上获取 JavaScript 警报,请添加以下代码行:
mWebView.setWebChromeClient(new WebChromeClient());
在以下代码行之后:
webSettings.setJavaScriptEnabled(true);
最后应该是这样的:
webSettings.setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient());