cordova-plugin-device

Android Testsuite Chrome Testsuite iOS Testsuite Lint Test

このプラグインは、デバイスのハードウェアとソフトウェアを記述するグローバルな `device` オブジェクトを定義します。オブジェクトはグローバルスコープにありますが、`deviceready` イベントが発生するまでは使用できません。

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    console.log(device.cordova);
}

インストール

cordova plugin add cordova-plugin-device

プロパティ

  • device.cordova
  • device.model
  • device.platform
  • device.uuid
  • device.version
  • device.manufacturer
  • device.isVirtual
  • device.serial
  • device.sdkVersion (Androidのみ)

device.cordova

アプリケーションにバンドルされているCordovaプラットフォームのバージョンを返します。

バージョン情報は `cordova.js` ファイルから取得されます。

このプロパティは、インストールされている他のプラットフォームのバージョン情報を表示しません。実行中のプラットフォームのバージョンのみが表示されます。

Cordova Android 10.1.1がCordovaプロジェクトにインストールされている場合、Androidアプリケーションの `cordova.js` ファイルには `10.1.1` が含まれます。

`device.cordova` プロパティは `10.1.1` を表示します。

サポートされているプラットフォーム

  • Android
  • ブラウザ
  • iOS
  • Windows
  • OS X

device.model

`device.model` は、デバイスのモデル名または製品名を返します。値はデバイスの製造元によって設定され、同じ製品のバージョン間で異なる場合があります。

サポートされているプラットフォーム

  • Android
  • ブラウザ
  • iOS
  • Windows
  • OS X

簡単な例

// Android: Pixel 4             returns "Pixel 4"
//          Motorola Moto G3    returns "MotoG3"
// Browser: Google Chrome       returns "Chrome"
//          Safari              returns "Safari"
// iOS:     iPad Mini           returns "iPad2,5"
//          iPhone 5            returns "iPhone5,1"
// See https://www.theiphonewiki.com/wiki/Models
// OS X:                        returns "x86_64"
//
var model = device.model;

Androidの特異性

iOSの特異性

モデル値は、Appleが提供する識別子に基づいています。

iPhone 13 Pro Maxなどの正確なデバイス名が必要な場合は、既知の識別子を関連するデバイス名に変換するためのマッパーを作成する必要があります。

例:識別子 `iPhone14,3` はデバイス `iPhone 13 Pro Max` に関連付けられています。

すべての識別子とデバイス名の完全なリストについては、こちらをご覧ください。

device.platform

デバイスのオペレーティングシステム名を取得します。

var string = device.platform;

サポートされているプラットフォーム

  • Android
  • ブラウザ
  • iOS
  • Windows
  • OS X

簡単な例

// Depending on the device, a few examples are:
//   - "Android"
//   - "browser"
//   - "iOS"
//   - "WinCE"
//   - "Mac OS X"
//
var devicePlatform = device.platform;

device.uuid

デバイスの汎用一意識別子(UUID)を取得します。

var string = device.uuid;

説明

UUIDの生成方法は、デバイスの製造元によって決定され、デバイスのプラットフォームまたはモデルに固有です。

サポートされているプラットフォーム

  • Android
  • iOS
  • Windows
  • OS X

簡単な例

// Android: Returns a random 64-bit integer (as a string, again!)
//
// iOS: (Paraphrased from the UIDevice Class documentation)
//         Returns the [UIDevice identifierForVendor] UUID which is unique and the same for all apps installed by the same vendor. However the UUID can be different if the user deletes all apps from the vendor and then reinstalls it.
//
// Windows Phone 7 : Returns a hash of device+current user,
// if the user is not defined, a guid is generated and will persist until the app is uninstalled
//
var deviceID = device.uuid;

Androidの特異性

Androidの `uuid` は64ビット整数(16進数文字列として表されます)。この `uuid` の動作は、2つの異なるOSバージョンで異なります-

Android 8.0(APIレベル26)未満の場合

Android 8.0より前のバージョンのプラットフォームでは、 `uuid` はユーザーが最初にデバイスを設定したときにランダムに生成され、ユーザーのデバイスの寿命 boyunca一定のままです。

Android 8.0以降の場合

上記の動作はAndroid 8.0で変更されました。詳細についてはこちらをご覧ください。

Android 8.0以降のバージョンでは、 `uuid` はアプリ署名キー、ユーザー、およびデバイスの各組み合わせに対して一意になります。値は署名キーとユーザーによってスコープされます。デバイスで工場出荷時設定にリセットされた場合、またはAPK署名キーが変更された場合、値は変更される可能性があります。

詳細については、https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_IDをご覧ください。

iOSの特異性

iOSの `uuid` は `identifierForVendor` プロパティを使用します。同じベンダーのデバイス間では一意ですが、異なるベンダーでは異なり、ベンダーのすべてのアプリが削除されてから再インストールされると変更されます。詳細については、こちらを参照してください。UUIDは、プリファレンスに保存されているため、アプリがバックアップまたはiCloudから復元された場合と同じになります。このプラグインの古いバージョンを使用しているユーザーは、プリファレンスから取得されるため、別の方法で生成された以前のUUIDと同じものを引き続き受信します。

OS Xの特異性

OS Xの `uuid` は、まだ存在しない場合は自動的に生成され、 `CDVUUID` プロパティの `standardUserDefaults` に保存されます。

device.version

オペレーティングシステムのバージョンを取得します。

var string = device.version;

サポートされているプラットフォーム

  • Android
  • ブラウザ
  • iOS
  • Windows
  • OS X

簡単な例

// 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"
//
// Browser:    Returns version number for the browser
//
// iOS:     iOS 3.2 returns "3.2"
//
// Windows 8: return the current OS version, ex on Windows 8.1 returns 6.3.9600.16384
//
// OS X:        El Capitan would return "10.11.2"
//
var deviceVersion = device.version;

device.manufacturer

デバイスの製造元を取得します。

var string = device.manufacturer;

サポートされているプラットフォーム

  • Android
  • iOS
  • Windows

簡単な例

// Android:    Motorola XT1032 would return "motorola"
// iOS:     returns "Apple"
//
var deviceManufacturer = device.manufacturer;

device.isVirtual

デバイスがシミュレーターで実行されているかどうか。

var isSim = device.isVirtual;

device.sdkVersion (Androidのみ)

AndroidデバイスのSDKバージョン(SDK_INT)を取得します。

サポートされているプラットフォーム

  • Android

OS Xとブラウザの特異性

OS Xとブラウザの `isVirtual` プロパティは常にfalseを返します。

device.serial

デバイスのハードウェアシリアル番号(SERIAL)を取得します。

var string = device.serial;

サポートされているプラットフォーム

  • Android
  • OS X

Androidの特異性

Android 9以降、 `uuid` プロパティを支えていた基盤となるネイティブAPIは非推奨となり、適切な権限がなければ常に `UNKNOWN` を返します。Cordovaは、必要な権限の処理を実装したことがありません。Android 10以降、リセットできない**すべて**のデバイス識別子は、通常のアプリケーションでは読み取ることができなくなり、常に `UNKNOWN` を返します。詳細については、こちらをご覧ください。

device.isiOSAppOnMac

iOSアプリがMacデスクトップ(Apple Silicon ARM64プロセッサ、M1以降)で実行されています。このパラメータは、iOS V14.0以降でのみ返され、Androidデバイスでは返されません。

var boolean = device.isiOSAppOnMac;

サポートされているプラットフォーム

  • iOS