跳到主要内容
版本:v6

@capacitor/device

Device API 提供了设备的内部信息,例如型号和操作系统版本,以及用户信息,如唯一标识符。

安装

npm install @capacitor/device@latest-6
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>
<!-- 如果 PrivacyInfo 文件已存在,请将此字典条目添加到数组中 -->
<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
属性类型描述始于
namestring设备名称。例如,"John's iPhone"。此属性仅在 iOS 和 Android 7.1 及以上版本受支持。在 iOS 16+ 上,若无相应的权限,此属性将返回通用设备名称。1.0.0
modelstring设备型号。例如,"iPhone13,4"。1.0.0
platform'ios' | 'android' | 'web'设备平台(小写)。1.0.0
operatingSystem
OperatingSystem
设备的操作系统。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
属性类型描述自版本
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'