なぜかdeviceready
関数やthis.$ons.ready
が発火しなくて困っていた時に色々やってみたことを書きます。
解決法
ズバリ、cordovaプラグインに問題がありました。
ソースコードを整理して、プラグインも整理したところ上手く行きました!
具体的には、Admobのプラグインのバージョンを以下のように設定しました。
- cordova-admob-sdk v0.24.1
- cordova-plugin-admob-free v0.27.0
(以下の記事がとても参考になりました、ありがとうございます)
Cordova AdMob Freeプラグインで広告を表示 | senmyou's blog
MonacaのOnsen UI + VueプロジェクトでAdMob Freeプラグインを利用してみます。
また、deviceready
とthis.$ons.ready
の発火の仕組みに関しては、以下の記事が参考になりました。
端的に言うと、cordovaプラグインで何か問題があると、devicereadyやons.readyが発火しなくなってしまうと言うことです💦
Onsen UI: ons.readyについて - Qiita
Onsen UIは、最初からハイブリッドモバイルアプリケーション用に作られたため、Cordovaと組み合わせた場合の実装がなされています。そこで、今回はアプリを起動したときの最初の処理であるons.…
まとめ
どれだけ忙しかったとしても、整理整頓は大事だなと感じた瞬間でした。
やはり見づらいコードよりも見やすいコードのほうが生産性は上がりますよね。
ソースコードは綺麗にしておいたほうが良いという自分への教訓でした。
コメント