kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

【ソースコード・リーディング】cordova-device-plugin

The Apache Software Foundation · GitHub

ソースコード・リーディングを実践してみます。

今回はcordovaのプラグインソースコードです。
cordova-plugin-device

apache/cordova-plugin-device · GitHub

apacheの提供しているオープンソースとして提供されているので、 コードを見ることができます。

apacheオープンソースはありがたいですね。

今回はcordovaのプラグインで簡単な部分でやりたいです。

cordova-plugin-deviceはなにができる?

cordova-plugin-device/index.md at master · apache/cordova-plugin-device · GitHub

cordova-plugin-deviceはデバイス情報のいくつかを取得できます。

取得できる内容

  • model情報
  • プラットフォーム
  • UUID
  • バージョン

詳細を書いてみます。

モデル情報

端末のモデル情報です。

// Android:    Nexus One       returns "Passion" (Nexus One code name)
//             Motorola Droid  returns "voles"
// BlackBerry: Torch 9800      returns "9800"
// Browser:    Google Chrome   returns "Chrome"
//             Safari          returns "Safari"
// iOS:     for the iPad Mini, returns iPad2,5; iPhone 5 is iPhone 5,1. See http://theiphonewiki.com/wiki/index.php?title=Models
var model = device.model

プラットフォーム

端末のプラットフォームを取得できます。

// Depending on the device, a few examples are:
//   - "Android"
//   - "BlackBerry 10"
//   - Browser:         returns "MacIntel" on Mac
//                      returns "Win32" on Windows
//   - "iOS"
//   - "WinCE"
//   - "Tizen"
var devicePlatform = device.platform;

UUID

UUIDを取得できます。これはちょっと注意が必要っぽいですね。
たぶん僕が知っているUUIDとはちょっと意味が違う気がしています。

// Android: ランダムな64bit整数 (文字列として)
//          デバイスの最初の起動時に生成される
//
// BlackBerry: デバイスのPIN番号
//             9桁の一位の整数 (文字列として)
//
// iPhone: (UIDevice Class documentation)
//         ハッシュ値の文字列を返す。デバイスで一意である。
// Windows Phone 7 : デバイス+現在のユーザーのハッシュを返す
// Tizen: デバイスのIMEI番号
var deviceID = device.uuid;

iOSでは、デバイス固有ではなくアプリケーションごとに異なる。アプリを再インストール、アップデートする際に変更します。 UUIDは信頼できるものではありません。

だそうです。注意ですね。

version

OSのバージョンを取得できます。

// Android:    Froyo OS would return "2.2"
//             Eclair OS would return "2.1", "2.0.1", or "2.0"
//             Version can also return update level "2.1-update1"
//
// BlackBerry: Torch 9800 using OS 6.0 would return "6.0.0.600"
//
// Browser:    Returns version number for the browser
//
// iPhone:     iOS 3.2 returns "3.2"
//
// Windows Phone 7: returns current OS version number, ex. on Mango returns 7.10.7720
// Tizen: returns "TIZEN_20120425_2"
var deviceVersion = device.version;

cordova-plugin-deviceはいれておくべき

cordovaはマルチプラットフォームでアプリを作れるように設計されていますが、ひとつのコードですべてができるほどあまくないと思っています。

きっとOSや使用する端末での分岐は確実にあると思いますので。

機能としての制限が入るわけでもなさそうなので、入れておくべき機能です。

次回にインストール方法と使用方法を。。。

ソースコードリーディングとかいいながら長くなってしまったことを後悔です。

説明はプラグインのページを見て下さい。で良かったのかな??

でも正直、自分で使える部分までしっかり理解したかったりするからしょうがないかな。

ということでまずは使えるようにするためのインストールと使い方を次回にでもやります。