Cordova 3.x 基础 -- deviceready事件

转自:http://rensanning.iteye.com/blog/2019289

Cordova框架中第一个应该掌握的就是这个deviceready事件。采用Cordova开发的应用在运行的时候,Cordova提供的通过HTML5调用Native功能并不是立即就能使用的,Cordova框架在读入HTML5代码之后,要进行HTML5和Native建立桥接,在未能完成这个桥接的初始的情况下,是不能调用Native功能的。在Cordova框架中,当这个桥接的初始化完成后,会调用他自身特有的事件,即deviceready事件。 


所以首先应该在HTML中注册deviceready的事件监听,在它的CallBack函数中再去使用Cordova的功能。 
Js代码   收藏代码
  1. document.addEventListener('deviceready'function () {  
  2.   console.log('Device is Ready!');  
  3.   // ....your code  
  4. }, false);  


需要注意的是,deviceready事件是在每回读入HTML的时候都会被调用,而不只是应用启动时调用。 

除了deviceready事件以外,Cordova应用在内部读取HTML代码的时候还会调用一些其他的事件。但这些并不是Cordova框架提供的事件,而是嵌入的Webview的浏览器Render引擎提供的。 

DOMContentLoaded事件  
页面的DOM内容加载完成后即触发,而无需等待其他资源(CSS、JS)的加载。 

load事件  
在DOMContentLoaded事件之后,其他资源加载完成后触发。 

所以,其实调用的顺序是:DOMContentLoaded -> load -> deviceready 
deviceready事件一定是在load事件之后,所以load事件的执行速度会影响到deviceready事件的调用。把一些不必要的资源可以在deviceready事件之后调用从而提高执行速度。 

Js代码   收藏代码
  1. document.addEventListener('DOMContentLoaded'function () {  
  2.   console.log('DOMContentLoaded OK!');  
  3. }, false);  
  4.   
  5. window.addEventListener('load'function () {  
  6.   console.log('load OK!');  
  7. }, false);  
  8.   
  9. document.addEventListener('deviceready'function () {  
  10.   console.log('deviceready OK!');  
  11. }, false);  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值