如何使用onDeviceReady设置AngularJS应用程序并初始化Cordova的功能?

时间:2016-05-04 15:16:06

标签: javascript angularjs cordova

我正在使用我的第一个Cordova应用程序来使用AngularJS,而且我对如何合并Cordova项目的起始JS感到有点迷失。

我目前拥有Cordova附带的默认index.js文件,我已将其修改为根据设备何时开启或离线包含一些事件。它创建了一个对象(app),并为initialize,bindEvents和onDeviceready添加了函数。

我应该在哪里定义AngularJS应用程序?在app.initialize()函数调用文档底部后?或者我可以完全抛弃JS文件的原始Cordova结构并为onDeviceReady做其他事情吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

基本上你可以在任何地方定义角度,我推荐一个单独的文件。 你需要担心的是在cordova之前首先加载角度。 以下是如何使用服务克服此问题的示例。

.service('cordovaReady', function($q){
 var cordovaDefer = $q.defer();

 //Note: if you want browser support you'll need to detect
 //what platform you're running because deviceready event won't be called
 //unless cordova is running.
 document.addEventListener("deviceready", cordovaDefer.resolve, false);

 return function(){
  return cordovaDefer.promise;
 };
});

每次在应用程序中使用cordova插件时都会使用它:

//$cordovaFacebook is just an example
.controller('someCtrl', function(cordovaReady, $cordovaFacebook){
 cordovaReady()
  .then(function(){

   //Plugins available here
   $cordovaFacebook.api('/me').then(...);
});