如何获得Cordova / ionic中的deviceready事件?

时间:2015-04-14 10:18:29

标签: javascript android cordova ionic-framework

我正在使用ionic framework构建一个应用程序(它构建在Cordova之上),我现在想要捕获deviceready事件。在互联网上,我发现了各种方法。我尝试了以下三种方式:

document.addEventListener('deviceready', function () {console.log('IT IS READY!');});

$ionicPlatform.ready(function () {console.log('IT IS READY!');});

window.ionic.Platform.ready(function() {console.log('IT IS READY!');});

但这些都不起作用。我用日志语句包围了这些行,并且在执行它之后的所有代码,因此它不会停止。我在物理Android设备上尝试这个(还没试过iOS)。

我没有收到任何错误消息。我在终端中唯一可能相关的日志是指一个无法读取的键盘:

I/chromium(25678): [INFO:CONSOLE(20)] "Uncaught TypeError: Cannot read property 'Keyboard' of undefined", source: file:///android_asset/www/js/app.js (20)

有人知道为什么这不起作用以及如何解决它?欢迎所有提示!

1 个答案:

答案 0 :(得分:1)

默认的“空白”Ionic模板在app.js中包含此代码,效果非常好。

angular.module('starter', ['ionic'])
.run(function($ionicPlatform) {

  $ionicPlatform.ready(function() {

    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }

  });
})

也许您将$ionicPlatform.ready(function () {});放在错误的位置。