2015-04-14 3 views
0

Я создаю приложение, используя ionic framework (который построен поверх Cordova), и теперь я хочу поймать событие deviceready. Вокруг Интернета я нашел различные способы сделать это. Я пробовал следующие три способа:Как получить событие deviceready в Cordova/ionic?

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

По умолчанию 'blank' Ionic template имеет этот код в 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() {}); в неправильном месте.

Смежные вопросы