Angular模块监听deviceready事件

// 本服务设置了一个Angular模块监听deviceready事件。也可以使用服务来监听
// deviceready事件,然后依赖于这个事件是否被触发来解析promise。
// 可以使用这个CordovaService来确定Cordova是否准备好了,事实上这里已经准备好了,并
// 且我们还可以依赖于这个服务是否准备就绪来设置逻辑,使用方式如下:
// angular.module('myApp', ['fsCordova'])
//    .controller('MyController', function ($scope, CordovaService) {
//    CordovaService.ready.then(function () {
//        // 此时Cordova已经准备好了
//    });
// });
angular.module('fsCordova', [])
    .service('CordovaService', ['$document', '$q',
        function ($document, $q) {
            var d = $q.defer(),
                resolved = false;
            var self = this;
            this.ready = d.promise;
            document.addEventListener('deviceready', function () {
                resolved = true;
                d.resolve(window.cordova);
            });
            // 检查一下以确保没有漏掉这个事件(以防万一)
            setTimeout(function () {
                if (!resolved) {
                    if (window.cordova) {
                        d.resolve(window.cordova);
                    }
                }
            }, 3000);
        }
    ]);


转载于:https://my.oschina.net/u/1457074/blog/373344

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值