@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
属性 | 类型 | 描述 | 自从 |
---|---|---|---|
identifier | 字符串 | 应用程序可用的设备标识符。此标识符可能会在仅允许每应用程序安装 ID 的现代移动平台上更改。在 iOS 上,标识符是一个 UUID,它将设备唯一标识给应用程序的供应商(了解更多)。在 Android 8+ 上,**标识符是一个 64 位数字(以十六进制字符串表示)**,对于应用程序签名密钥、用户和设备的每个组合都是唯一的(了解更多)。在 Web 上,将生成一个随机标识符并存储在 localStorage 中以供后续调用。如果 localStorage 不可用,则每次调用都会生成一个新的随机标识符。 | 1.0.0 |
DeviceInfo
属性 | 类型 | 描述 | 自从 |
---|---|---|---|
name | 字符串 | 设备的名称。例如,“John 的 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 | 字符串 | 设备操作系统的版本。 | 1.0.0 |
iOSVersion | 数字 | iOS 版本号。仅在 iOS 上可用。多部分版本号被压缩成一个整数,并填充到两位数字,例如:"16.3.1" -> 160301 | 5.0.0 |
androidSDKVersion | 数字 | Android SDK 版本号。仅在 Android 上可用。 | 5.0.0 |
manufacturer | 字符串 | 设备的制造商。 | 1.0.0 |
isVirtual | 布尔值 | 应用程序是否在模拟器/模拟器中运行。 | 1.0.0 |
memUsed | 数字 | 当前应用程序使用的近似内存量(以字节为单位)。除以 1048576 以获得使用的 MB 数。 | 1.0.0 |
diskFree | 数字 | 操作系统在正常数据存储路径上可用的空闲磁盘空间量(以字节为单位)。在 Android 上,它返回持有核心 Android 操作系统的“系统”分区上的空闲磁盘空间。在 iOS 上,此值不准确。 | 1.0.0 |
diskTotal | 数字 | 操作系统的正常数据存储路径的总大小(以字节为单位)。在 Android 上,它返回持有核心 Android 操作系统的“系统”分区上的磁盘空间。 | 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 | 字符串 | 两位语言代码。 | 1.0.0 |
LanguageTag
属性 | 类型 | 描述 | 自从 |
---|---|---|---|
value | 字符串 | 返回格式良好的 IETF BCP 47 语言标签。 | 4.0.0 |
类型别名
OperatingSystem
'ios' | 'android' | 'windows' | 'mac' | 'unknown'