@capacitor/device
Device APIは、モデルやOSバージョンなどのデバイスに関する内部情報と、一意のIDなどのユーザー情報を公開します。
インストール
npm install @capacitor/device
npx cap sync
Apple プライバシーマニフェストの要件
Appleは、ユーザーのプライバシーを強化するために、アプリ開発者がAPIの使用理由を指定することを義務付けています。2024年5月1日までに、App Store Connectにアプリを提出する際にこれらの理由を含める必要があります。
アプリでこの特定のプラグインを使用する場合は、/ios/App
にPrivacyInfo.xcprivacy
ファイルを作成するか、VS Code拡張機能を使用して生成し、使用理由を指定する必要があります。
これを行う方法の詳細については、Capacitor ドキュメントを参照してください。
このプラグインの場合、必要な辞書のキーはNSPrivacyAccessedAPICategoryDiskSpaceであり、推奨される理由は85F4.1です。
PrivacyInfo.xcprivacy の例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>85F4.1</string>
</array>
</dict>
</array>
</dict>
</plist>
プラグイン使用例
import { Device } from '@capacitor/device';
const logDeviceInfo = async () => {
const info = await Device.getInfo();
console.log(info);
};
const logBatteryInfo = async () => {
const info = await Device.getBatteryInfo();
console.log(info);
};
API
getId()
getId() => Promise<DeviceId>
デバイスの一意の識別子を返します。
戻り値: Promise<DeviceId>
以降 1.0.0
getInfo()
getInfo() => Promise<DeviceInfo>
基になるデバイス/OS/プラットフォームに関する情報を返します。
戻り値: Promise<DeviceInfo>
以降 1.0.0
getBatteryInfo()
getBatteryInfo() => Promise<BatteryInfo>
バッテリーに関する情報を返します。
戻り値: Promise<BatteryInfo>
以降 1.0.0
getLanguageCode()
getLanguageCode() => Promise<GetLanguageCodeResult>
デバイスの現在の言語ロケールコードを取得します。
戻り値: Promise<GetLanguageCodeResult>
以降 1.0.0
getLanguageTag()
getLanguageTag() => Promise<LanguageTag>
デバイスの現在の言語ロケールタグを取得します。
戻り値: Promise<LanguageTag>
以降 4.0.0
インターフェース
DeviceId
プロパティ | 型 | 説明 | 以降 |
---|---|---|---|
identifier | 文字列 | アプリで使用可能なデバイスの識別子。この識別子は、アプリごとのインストールIDのみを許可する最新のモバイルプラットフォームで変更される可能性があります。iOSでは、識別子はアプリのベンダーに対してデバイスを一意に識別するUUIDです(詳細はこちら)。Android 8以降では、**識別子は64ビットの数値(16進数の文字列で表現)**であり、アプリの署名キー、ユーザー、デバイスの組み合わせごとに一意です(詳細はこちら)。Webでは、ランダムな識別子が生成され、localStorageに保存されて後続の呼び出しに使用されます。localStorageを使用できない場合は、毎回新しいランダムな識別子が生成されます。 | 1.0.0 |
DeviceInfo
プロパティ | 型 | 説明 | 以降 |
---|---|---|---|
name | 文字列 | デバイスの名前。例:「John's iPhone」。これはiOSとAndroid 7.1以降でのみサポートされています。iOS 16以降では、適切なエンタイトルメントがないため、一般的なデバイス名が返されます。 | 1.0.0 |
model | 文字列 | デバイスモデル。例:「iPhone13,4」。 | 1.0.0 |
platform | 'ios' | 'android' | 'web' | デバイスプラットフォーム(小文字)。 | 1.0.0 |
operatingSystem | OperatingSystem | デバイスのオペレーティングシステム。 | 1.0.0 |
osVersion | 文字列 | デバイスOSのバージョン。 | 1.0.0 |
iOSVersion | 数値 | iOSバージョン番号。iOSでのみ使用可能です。複数のパートからなるバージョン番号は、2桁で埋められた整数に圧縮されます。例:「16.3.1」-> 160301 | 5.0.0 |
androidSDKVersion | 数値 | Android SDKバージョン番号。Androidでのみ使用可能です。 | 5.0.0 |
manufacturer | 文字列 | デバイスの製造元。 | 1.0.0 |
isVirtual | ブール値 | アプリがシミュレーター/エミュレーターで実行されているかどうか。 | 1.0.0 |
memUsed | 数値 | 現在のアプリで使用されているメモリ量の概算(バイト単位)。使用されているMB数を取得するには、1048576で除算します。 | 1.0.0 |
diskFree | 数値 | OSの通常のデータ保存パスで使用可能な空きディスク容量(バイト単位)。Androidでは、「system」パーティション(コアAndroid OSを保持)の空きディスク容量を返します。iOSではこの値は正確ではありません。 | 1.0.0 |
diskTotal | 数値 | OSの通常のデータ保存パスの合計サイズ(バイト単位)。Androidでは、「system」パーティション(コアAndroid OSを保持)のディスク容量を返します。 | 1.0.0 |
realDiskFree | 数値 | 通常のデータ保存パスで使用可能な空きディスク容量(バイト単位)。 | 1.1.0 |
realDiskTotal | 数値 | 通常のデータ保存パスの合計サイズ(バイト単位)。 | 1.1.0 |
webViewVersion | 文字列 | Webビューブラウザのバージョン | 1.0.0 |
BatteryInfo
プロパティ | 型 | 説明 | 以降 |
---|---|---|---|
batteryLevel | 数値 | バッテリーの充電量を示すパーセンテージ(0〜1)。 | 1.0.0 |
isCharging | ブール値 | デバイスが充電中かどうか。 | 1.0.0 |
GetLanguageCodeResult
プロパティ | 型 | 説明 | 以降 |
---|---|---|---|
value | 文字列 | 2文字の言語コード。 | 1.0.0 |
LanguageTag
プロパティ | 型 | 説明 | 以降 |
---|---|---|---|
value | 文字列 | 適切なIETF BCP 47言語タグを返します。 | 4.0.0 |
型エイリアス
OperatingSystem
'ios' | 'android' | 'windows' | 'mac' | 'unknown'