Apache Cordova 3.x入门 – deviceready事件

Apache Cordova 3.x入门 - deviceready事件

Apache Cordova 3.x入门 — deviceready事件

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

所以首先应该在HTML中注册deviceready的事件监听,在它的CallBack函数中再去使用Cordova的功能。

document.addEventListener('deviceready', function () {
  console.log('Device is Ready!');
  // ....your code
}, false);

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

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

DOMContentLoaded事件

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

load事件

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

所以,其实调用的顺序是:DOMContentLoaded -> load -> deviceready

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

document.addEventListener('DOMContentLoaded', function () {
  console.log('DOMContentLoaded OK!');
}, false);

window.addEventListener('load', function () {
  console.log('load OK!');
}, false);

document.addEventListener('deviceready', function () {
  console.log('deviceready OK!');
}, false);
Apache Cordova 3.x入门 – deviceready事件

相关文章:

你感兴趣的文章:

标签云: