在 linux 上构建时 $ionicDevice.ready() 不会触发
$ionicDevice.ready() does not fire when building on linux
这几天我一直在苦苦思索,就是想不通。
这是位于 www/js/
文件夹中的 app.js
文件中我的 .run
部分:
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
的警报,但是我的家用 PC(运行s Elementary 0.3 Freya)当我 ionic build android
构建顺利时,一切似乎都正常,但我在 运行 [=] 上的应用程序后没有收到警报46=] phone (4.2).
我安装了设备插件,这是输出:
amotio@potato:~/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
我已经在 .run
函数中包含了依赖项,据我所知,一切都是应该的。
有谁知道这里会发生什么情况?在过去的两天里,我一直在努力解决这个问题,我已经阅读了文档中的几乎所有内容(它仍然使用调用 ionic.Platform.ready()
的旧方法 - 我也尝试过但没有成功,我已经包含了 cordova.js
文件就在 </body>
标签之前,正如其他堆栈问题中提到的那样。
我很高兴能提供任何帮助或线索来揭示可能存在的问题,谢谢。
您是否尝试在设备就绪指令后设置警报?
问题可能与您的第一个警报上方的命令有关
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();可能正在发送那个问题
这几天我一直在苦苦思索,就是想不通。
这是位于 www/js/
文件夹中的 app.js
文件中我的 .run
部分:
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
的警报,但是我的家用 PC(运行s Elementary 0.3 Freya)当我 ionic build android
构建顺利时,一切似乎都正常,但我在 运行 [=] 上的应用程序后没有收到警报46=] phone (4.2).
我安装了设备插件,这是输出:
amotio@potato:~/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
我已经在 .run
函数中包含了依赖项,据我所知,一切都是应该的。
有谁知道这里会发生什么情况?在过去的两天里,我一直在努力解决这个问题,我已经阅读了文档中的几乎所有内容(它仍然使用调用 ionic.Platform.ready()
的旧方法 - 我也尝试过但没有成功,我已经包含了 cordova.js
文件就在 </body>
标签之前,正如其他堆栈问题中提到的那样。
我很高兴能提供任何帮助或线索来揭示可能存在的问题,谢谢。
您是否尝试在设备就绪指令后设置警报?
问题可能与您的第一个警报上方的命令有关
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();可能正在发送那个问题