Page 381 - AngularJS权威教程
P. 381
26.4 Cordova 入门 361
当你对应用作出改变时,需要确保重新构建应用,如图26-8所示。 19
$cordova build ios
20
21
22
23
图26-8 使用Safari构建应用
24
26.4.7 Anguar中的Cordova服务
当你准备好Cordova应用,设备也已经连接好,一切都准备好时,Cordova会触发一个叫做 25
deviceready的浏览器事件。
在Angular中,可以在这个事件被触发之后启动应用,或者也可以在deviceready事件被触发 26
之后使用promise处理应用的逻辑部分。
要在接收到deviceready事件之后启动应用,需要给这个事件设置一个监听器,然后手动启 27
动应用:
28
angular.module('myApp', []);
var onDeviceReady = function() {
angular.bootstrap(document, ['myApp']); 29
};
document.addEventListener('deviceready', onDeviceReady);
30
这里推荐一个替代的方法监听deviceready事件,就是在deviceready事件被触发之后使用
promise的方式设置执行绑定。
31
在这里我们设置了一个Angular模块监听deviceready事件。也可以使用服务来监听
deviceready事件,然后依赖于这个事件是否被触发来解析promise。
32
angular.module('fsCordova', [])
.service('CordovaService', ['$document', '$q',
function($document, $q) {
var d = $q.defer(), 33
resolved = false;
var self = this;
this.ready = d.promise; 34
document.addEventListener('deviceready', function() {
resolved = true; 35
d.resolve(window.cordova);
});
// 检查一下以确保没有漏掉这个事件(以防万一) 36
setTimeout(function() {