这几天我一直在苦苦挣扎,只是无法解决这个问题。在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
文件在其他堆栈问题中提到的人。
我很高兴的任何帮助或导致那将揭示了什么可能是错误的,谢谢你。
“RoomlistsCtrl”是第一个视图控制器吗? – shakib
不,它不是,在RoomlistsCtrl之前有AppCtrl做同样的事情(把ID明显地放在用户身上,所以他知道他的ID)。 但@aorfevre指出,问题出现在'window.cordova'和/或'window.StatusBar'中。 – Vincurekf