cordova-plugin-device阻止deviceready事件的触发

3

我正在开发一个应用程序,在推送了最新的更新之前一直运行良好,但是现在出现了与cordova-plugin-device有关的问题。

我收到以下错误:

cordova.js:1223 deviceready has not fired after 5 seconds.
cordova.js:1216 Channel not fired: onCordovaInfoReady

在添加了插件 cordova-plugin-device 后,即使是一个简单的“hello world”应用程序,在 cordova 项目目录中运行时也会发生这种情况。
cordova create hello com.example.hello HelloWorld 

唯一的区别在于通过(在项目目录中)添加插件

cordova plugin add cordova-plugin-device

可能的原因

我已经探索了可能导致问题的不同情况,但没有一个解决了这个问题。

  1. 内容安全策略(Content-Security-Policy)

I have changed the meta-tag in my index.html page to

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">

毫无效果。

  1. 安装最新插件/平台

没有效果。以下是我使用的版本:

$ npm --version
4.2.0
$ cordova -v     
6.5.0
$ cordova platforms
Installed platforms:
android 6.1.2
$ cordova plugins     
cordova-plugin-device 1.1.4 "Device"
cordova-plugin-whitelist 1.3.1 "Whitelist"  

我怀疑这是cordova-plugin-device本身的一个错误。如果我应该提交错误报告,请给予意见。

非常感谢!


我刚刚尝试了添加和服务浏览器,问题仍然存在。当运行cordova serve android或cordova serve browser时,我没有遇到任何关于cordova.js文件的问题。无论如何,如果这对您有效,我可能会尝试重新安装整个cordova。我看到这个问题在互联网上不断出现,但从未找到明确的解决方案。感谢您的帮助! - Gabriel Wu
我现在使用的是6.1.1版本,让我升级一下看看。这样可以增加解决bug的可能性! - Aaron
谢谢,我已经降级到6.1.1了,但还是没有运气。我想知道可能有什么不同... - Gabriel Wu
你使用的是哪个npm版本?我这里是4.1.2。虽然我不认为这会是问题所在,但如果我们的设置相同,那么就需要检查其他方面了。 - Aaron
$ npm -v3.5.2看起来有点过时了...我会尝试升级它。 - Gabriel Wu
显示剩余3条评论
1个回答

0

我遇到了同样的问题。我为这个项目安装了几个插件,最近添加了设备插件后,出现了以下问题:

deviceready has not fired after 5 seconds.
Channel not fired: onCordovaInfoReady.
Cancelled

移除设备插件后,这些问题消失了,一切恢复正常。 我还怀疑插件本身存在漏洞。

Node version: v8.9.4
Cordova version: 8.0.0
cordova-plugin-device spec=^2.0.2
engine name=ios spec=~4.5.5
npm --v 5.7.1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接