なぜか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が発火しなくなってしまうと言うことです💦
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9T25zZW4lMjBVSSUzQSUyMG9ucy5yZWFkeSVFMyU4MSVBQiVFMyU4MSVBNCVFMyU4MSU4NCVFMyU4MSVBNiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MGZjOWY4NDViODE3NDc2NDk1ZGIwYzFmOGExMjcwNTg&mark-x=142&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwS05haXRvJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz01MzE2M2E0ZjNkN2FiZDBlZjM4NzUxODk1YTBjZTVhNg&blend-x=142&blend-y=491&blend-mode=normal&s=b1f5861ec3b4373d7f6a054b14ce8513)
Onsen UI: ons.readyについて - Qiita
Onsen UIは、最初からハイブリッドモバイルアプリケーション用に作られたため、Cordovaと組み合わせた場合の実装がなされています。そこで、今回はアプリを起動したときの最初の処理であるons.…
まとめ
どれだけ忙しかったとしても、整理整頓は大事だなと感じた瞬間でした。
やはり見づらいコードよりも見やすいコードのほうが生産性は上がりますよね。
ソースコードは綺麗にしておいたほうが良いという自分への教訓でした。
コメント