javascript - $ionicDevice.ready() 在 Linux 上构建时不会触发

标签 javascript linux cordova ionic-framework ready

这几天我一直在苦苦思索,就是无法解决。

这是我的 .run参与app.js文件位于 www/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 );
  });
})

这是我的 Controller ,它接收 $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 的警报设备准备就绪后,但在我的家用电脑(运行 Elementary 0.3 Freya)上,当我 ionic build android构建进展顺利,一切似乎都正常,但在 Android 手机 (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(true);或 StatusBar.styleDefault();可能正在发送那个问题

关于javascript - $ionicDevice.ready() 在 Linux 上构建时不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29682351/

相关文章:

javascript - 确定函数已定义为表达式或声明为函数

javascript - javascript中为什么float变成了string

linux - 将 1.txt、2.txt ... 10.txt 连接成一个文件

Linux 命令将 xx.xx 更改为 xx,xx(用于货币)

android - 谷歌地图没有出现在 Phonegap Build 中

android - 如何检查 phonegap/cordova 构建错误

ios - 如果在 xcode 的 gui 版本中完美运行,为什么我会从命令行签署 ionic-cordova ios 应用程序时出现错误?

javascript - Jquery在选择:submit时避免普通按钮

python - 在后台运行python文件时没有输出

javascript - 我们可以在 JavaScript 中使用 libemu 库吗