2015-04-16 39 views
1

这几天我一直在苦苦挣扎,只是无法解决这个问题。在linux上构建时,ionicDevice.ready()不会触发

这是我.run部分在位于www/js/文件夹app.js文件:

angular.module('starter', ['ionic', 'starter.controllers', 'ngCordova']) 

.run(function($rootScope, $state, $ionicPlatform, $cordovaDevice) { 
    $ionicPlatform.ready(function(){ 

    if (window.cordova && window.cordova.plugins.Keyboard) { 
     cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
    } 
    if (window.StatusBar) { 
     // org.apache.cordova.statusbar required 
     StatusBar.styleDefault(); 
    } 

    alert('Platform ready!'); 
    $rootScope.uuid = $cordovaDevice.getUUID(); 
    //$rootScope.$apply(); 
    alert('Uuid: ' + $rootScope.uuid); 
    }); 
}) 

这是我的控制器,它采用了$rootScope.uuid,并把它传递给本地$scope.uuid变量:

app.controller('RoomlistsCtrl', function($rootScope, $scope, $ionicModal, $sailsBind) { 
    $scope.uuid = $rootScope.uuid; 
}); 

这用于在服务器上的列表中添加新项目的形式:

<input ng-model="newItem.uuid" type="hidden" value="{{ uuid }}"> 

的事情是,当我ionic build android在Windows(我的工作电脑上的)一切正常,我得到的警报,uuid后的设备已准备就绪,但我家的电脑上(运行基本0.3芙蕾雅)当我ionic build android的建立顺利,一切似乎都没问题,但我没有得到警报后,我在Android手机(4.2)上运行的应用程序。

我已经安装的设备插件,这是输出:在.run功能

[email protected]:~/git/my_project/mobile$ ionic plugin add org.apache.cordova.device 
running cordova plugin add org.apache.cordova.device 
Fetching plugin "org.apache.cordova.device" via plugin registry 
Plugin "org.apache.cordova.device" already installed on android. 
Saving plugin to package.json file 

我已经包括依赖而据我所知,一切都是理所应该。

有没有人知道这里可能是什么情况?我试图解决这个问题,在过去的两天里,我已经阅读了几乎所有的文档(它仍然使用旧的方式调用ionic.Platform.ready() - 我也试过没有成功,我在</body>标签之前包含了cordova.js文件在其他堆栈问题中提到的人。

我很高兴的任何帮助或导致那将揭示了什么可能是错误的,谢谢你。

+0

“RoomlistsCtrl”是第一个视图控制器吗? – shakib

+0

不,它不是,在RoomlistsCtrl之前有AppCtrl做同样的事情(把ID明显地放在用户身上,所以他知道他的ID)。 但@aorfevre指出,问题出现在'window.cordova'和/或'window.StatusBar'中。 – Vincurekf

回答

1

你试图设置警报装置TJE准备指令后JUST ?

可能是该问题与您的第一次警报之上的命令相关联

if (window.cordova && window.cordova.plugins.Keyboard) { 
    cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
} 
if (window.StatusBar) { 
    // org.apache.cordova.statusbar required 
    StatusBar.styleDefault(); 
} 

打印出window.cordova/window.cordova.plugins.Keyboard & window.StatusBar cordova.plugins.Keyboard.hideKeyboardAccessoryBar(真)的每个值;或StatusBar.styleDefault();可能是发送该问题

+0

是的!谢谢!我没有删除该行,因为它默认是在那里。我评论说,问题解决了。非常感谢 :) – Vincurekf

相关问题