LoginSignup
4
7

More than 5 years have passed since last update.

$ionicPlatform.readyが発火しなくてハマった

Last updated at Posted at 2015-07-03

概要

条件

generator-ionicを使用して開発。grunt emulate:ios --livereloadをして、consolelogsでconsole.logを有効にする。

現象

app.jsrunにある$ionicPlatform.readyが走らない(他の箇所にあるものも同様)。

app.js
angular.module('app', ['モジュール']).run(function($ionicPlatform) {

  $ionicPlatform.ready(function() {
    console.log('$ionicPlatform.ready log');
  });
})

代わりに、以下の様なエラーが出現。

1       log      deviceready has not fired after 5 seconds.
2       log      Channel not fired: onCordovaInfoReady

この辺りの記事を見てみたが、どの記事も、根本的な解決策ではなかったり、自分とは関係のなさそうな原因だったりで、途方に暮れる。

解決策

どうしようもなくなったのでstackoverflowで質問をしようとしたところ、以下の記事を発見。

cordovaのバージョンが原因で動かなくなっているらしい。試しに、4.x.x系と指定してあったものを、

package.json
    "cordova": "^4.0.0",

3.x.x系に変更し、npm installを実行。

package.json
    "cordova": "^3.0.0",

また、記事にあったように、空のcordova_plugins.jsonをルートディレクトリにおく

そして、念のため以下を実行。

$ ionic platform remove ios
$ ionic platform add ios

grunt emulate:ios --livereloadして確認する。しかし、** BUILD SUCCEEDED **のあとに、再び以下エラーが・・・。

1       log      deviceready has not fired after 5 seconds.
2       log      Channel not fired: onCordovaInfoReady

もうダメかと思ったところ、少し待っていると以下が出力された。

com.example.GeneratorIonicTest: 78721
** RUN SUCCEEDED **

そこでクライアントをrestartをすると・・・。

1        log      $ionicPlatform.ready log

無事解決しました。

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7