cordova ,ionic 中cordova.js 提示deviceready has not fired after 5 seconds

我用的是ionic start 命令生成项目 ,用  cordova create 也是可以的。都会在index.html 有这么一行

 <script type="text/javascript" src='cordova.js'></script> 

但在浏览器运行时 提示

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

当然浏览器下这么浏览肯定是有问题的,但是 当然在 执行 ionic emulate  或者 ionic run 时 安卓机上打开程序也是 什么都没有显示,可以断定浏览器提示肯定是有原因的。用 ripple emulate 试调 也没都能正常加载的,同时还能出发controlle里 的事件 如 backbutton 事件。

盲目的 谷歌了很多种办法都没解决   

有 如下的:

或者

或者 只用 cordova 命令   

Content Security Policy 用来定义 页面可以加载那些域名下的资源 图片 css js 等。

github 或者stackoverflow 上也没找到 解决的办法,也是因为英语太差。可怜


然后运行 ionic platform add android 可以指定好版本 ionic platform add [email protected] 生成如下目录,

看到这 就自然的把 android\assets 里的 文件都copy到服务器上去了 然后 ionic emulate android,或者浏览器 ,问题就来了。

其实这么copy是错误的,打包成apk 是 html,js,css 等都在apk里面了于是呢,运行的时候,安卓就首先加载本地的文件 js等,而从服务器上加载资源,不知道什么时候资源请求完成,事件的绑定就是个问题了,同时js是需要调用java代码的,放服务器端js就涉及到权限问题了,对本地数据的读写。而请求json数据是从服务器请求$http.get('http://182....',function(data){});  

所以在 apk 里打包有的文件,无服务端都不用放了。特别是cordova.js , cordova_plugins.js,  plugins等。

最底层的加载机制 还有些没搞懂,请大神们指导呢,谢谢哦。

原创文章 60 获赞 17 访问量 21万+

猜你喜欢

转载自blog.csdn.net/ling369523246/article/details/52187570
今日推荐