【Cordova】「cordova-plugin-device」プラグインでプラットフォームを取得できない

最近になって遭遇した 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」で時折エラーが発生する時の対処法でした。
対症療法で、根本的な解決にまでは至れておりませんが、もし同じことでお悩みの方の参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG