最近になって遭遇した Cordova アプリのエラーについて。
プラットフォームごとに処理を変えたい箇所があったので、下記の「cordova-plugin-device」を使って、Android か iOS なのかを判断していました。
GitHub – apache/cordova-plugin-device: Apache Cordova Plugin device
https://github.com/apache/cordova-plugin-device
が、低頻度ではありますが、時折エラーが発生。
下記のコードを使って、プラットフォームの文字列を取得していたのですが、platform
が未定義だと言われることがありました。
var platform = window.device.platform;
プラグイン自体はインストール済みですし、発生頻度もよく分からず…。
ただ、なんとなくブラウザで起動した時には発生することが多かったように思います。
で、対処法ですが、原因が分からなかったため、とりあえず対症療法で何とかすることにしました。
if (typeof window.device !== "undefined") { const platform = window.device.platform; switch (platform) { case "Android": // Android の時に実行する処理 break; case "iOS": // iOS の時に実行する処理 break; } } else { // プラットフォームが所得できなかった時の処理 }
確認したところ、window.device
が未定義な場合に今回のエラーが発生していたため、1行目でそれを確認しています。
何故未定義になるのかはまだ分かってはいませんが、理由は判明したため上記のように対処しました。
時間を見つけて、原因の調査も行いたいと思います。
以上、Cordova のプラグイン「cordova-plugin-device」で時折エラーが発生する時の対処法でした。
対症療法で、根本的な解決にまでは至れておりませんが、もし同じことでお悩みの方の参考になれば幸いです。