跳至主要內容
版本:v8

@capacitor/device

裝置 API 會公開裝置的內部資訊,例如型號和作業系統版本,以及使用者資訊,例如唯一 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>

傳回有關基礎裝置/作業系統/平台的資訊。

傳回: 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

屬性類型描述
identifierstring裝置可供應用程式使用的識別碼。此識別碼可能會在僅允許每個應用程式安裝 ID 的現代行動平台上變更。在 iOS 上,此識別碼是一個 UUID,可唯一識別應用程式廠商的裝置(閱讀更多)。在 Android 8+ 上,此識別碼是一個 64 位元的數字(以十六進位字串表示),對於應用程式簽署金鑰、使用者和裝置的每個組合而言都是唯一的(閱讀更多)。在 Web 上,會產生隨機識別碼並儲存在 localStorage 中供後續呼叫使用。如果 localStorage 無法使用,則每次呼叫時都會產生新的隨機識別碼。1.0.0

DeviceInfo

屬性類型描述
namestring裝置的名稱。例如,「John 的 iPhone」。僅在 iOS 和 Android 7.1 或以上版本中支援。在 iOS 16+ 上,這會傳回一般裝置名稱,而不會傳回適當的 權限1.0.0
modelstring裝置型號。例如,「iPhone13,4」。1.0.0
platform'ios' | 'android' | 'web'裝置平台(小寫)。1.0.0
operatingSystemOperatingSystem裝置的作業系統。1.0.0
osVersionstring裝置作業系統的版本。1.0.0
iOSVersionnumberiOS 版本號碼。僅在 iOS 上可用。多部分版本號碼會縮減為一個以兩位數填補的整數,例如:"16.3.1" -> 1603015.0.0
androidSDKVersionnumberAndroid SDK 版本號碼。僅在 Android 上可用。5.0.0
manufacturerstring裝置的製造商。1.0.0
isVirtualboolean應用程式是否在模擬器/模擬器中執行。1.0.0
memUsednumber目前應用程式使用的大約記憶體,以位元組為單位。除以 1048576 即可取得使用的 MB 數。1.0.0
diskFreenumber在作業系統的正常資料儲存路徑上可用的可用磁碟空間,以位元組為單位。在 Android 上,它會傳回保留核心 Android 作業系統的「系統」分割區上的可用磁碟空間。在 iOS 上,此值不準確。1.0.0
diskTotalnumber作業系統正常資料儲存路徑的總大小,以位元組為單位。在 Android 上,它會傳回保留核心 Android 作業系統的「系統」分割區上的磁碟空間。1.0.0
realDiskFreenumber在正常資料儲存上可用的可用磁碟空間,以位元組為單位。1.1.0
realDiskTotalnumber正常資料儲存路徑的總大小,以位元組為單位。1.1.0
webViewVersionstringWeb 檢視瀏覽器版本1.0.0

BatteryInfo

屬性類型描述
batteryLevelnumber指出電池充電量的百分比(0 到 1)。1.0.0
isChargingboolean裝置是否正在充電。1.0.0

GetLanguageCodeResult

屬性類型描述
valuestring兩個字元的語言代碼。1.0.0

LanguageTag

屬性類型描述
valuestring傳回格式正確的 IETF BCP 47 語言標籤。4.0.0

類型別名

OperatingSystem

'ios' | 'android' | 'windows' | 'mac' | 'unknown'