Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webview不显示JavaScript警报_Javascript_Android_Webview_Alert - Fatal编程技术网

Webview不显示JavaScript警报

Webview不显示JavaScript警报,javascript,android,webview,alert,Javascript,Android,Webview,Alert,我们使用android webview构建了一个混合应用程序,我用我的手机(LG Nexus 4)对其进行了测试。android应用程序以前曾正确显示来自网站的JavaScript警报,但最近它已停止显示相同的警报 每当要从应用程序中抛出警报而未显示任何内容时,它就会抛出以下错误 Cannot create a dialog, the WebView context is not an Activity 我怀疑这种行为是在谷歌最近更新了WebView组件之后开始的。我现在运行的是Androi

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

每当要从应用程序中抛出警报而未显示任何内容时,它就会抛出以下错误

 Cannot create a dialog, the WebView context is not an Activity
我怀疑这种行为是在谷歌最近更新了WebView组件之后开始的。我现在运行的是Android 5.0.1,webview版本是40(1832189 arm)

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

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

以下是来自 查看此链接和最后一条评论,您必须使用WebChromeClient

以下是来自 查看此链接和最后一条评论,您必须使用WebChromeClient


这似乎是WebView构建40中引入的一个bug。根据我记录的问题,它已在版本42中修复


这似乎是WebView构建40中引入的一个bug。根据我记录的问题,它已在版本42中修复


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

mWebView.setWebChromeClient(new WebChromeClient());
webSettings.setJavaScriptEnabled(true);
在以下代码行之后:

mWebView.setWebChromeClient(new WebChromeClient());
webSettings.setJavaScriptEnabled(true);
最后,它应该是这样的:

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

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

mWebView.setWebChromeClient(new WebChromeClient());
webSettings.setJavaScriptEnabled(true);
在以下代码行之后:

mWebView.setWebChromeClient(new WebChromeClient());
webSettings.setJavaScriptEnabled(true);
最后,它应该是这样的:

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

dialog.getWindow().setType(WindowManager.LayoutParams.TYPE\系统\警报);dialog.show();我认为您必须报告play store。@Rah,“dialog”是onJsAlert.dialog.getWindow().setType的AlertDialog(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);dialog.show();我想你必须报告play store。@Rah,“对话”是onJsAlert的AlertDialog。我已经添加了WebChromeClient。这就是早期版本的WebView中弹出警报的方式。但现在升级后的WebView不起作用。谢谢。我已经添加了WebChromeClient。这就是早期版本的WebView中弹出警报的方式。但现在升级后的WebView不起作用。谢谢