更新记录
1.0.0(2026-07-08)
- 首发:Android / iOS / HarmonyOS / Web / 微信小程序五端设备标识与设备信息。
- 公开 API:
getDeviceId、getPlatformInfo、getDeviceInfo(各含 Sync 版本)。
getDeviceId 返回 id / idType / osId / osType;类型 XviewUniqueIdInfo。
- Android:OAID → AndroidID → WidevineID → UUID;iOS:IDFA → IDFV → Keychain UUID;HarmonyOS:OAID → ODID → UUID。
- Web / 微信小程序:纯环境指纹(
fingerprint),不依赖 Storage。
getDeviceInfo 对齐 uni.getDeviceInfo 常用字段;getPlatformInfo 提供平台概要。
- 提供 uni-app 与 uni-app x 示例页面。
平台兼容性
uni-app(5.06)
| Vue2 |
Vue2插件版本 |
Vue3 |
Vue3插件版本 |
Chrome |
Chrome插件版本 |
Safari |
Safari插件版本 |
app-vue |
app-vue插件版本 |
app-nvue |
app-nvue插件版本 |
Android |
Android插件版本 |
iOS |
iOS插件版本 |
鸿蒙 |
鸿蒙插件版本 |
| √ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
5.0 |
1.0.0 |
12 |
1.0.0 |
√ |
1.0.0 |
| 微信小程序 |
微信小程序插件版本 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| √ |
1.0.0 |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
× |
uni-app x(5.06)
| Chrome |
Chrome插件版本 |
Safari |
Safari插件版本 |
Android |
Android插件版本 |
iOS |
iOS插件版本 |
鸿蒙 |
鸿蒙插件版本 |
微信小程序 |
微信小程序插件版本 |
| √ |
1.0.0 |
√ |
1.0.0 |
5.0 |
1.0.0 |
12 |
1.0.0 |
√ |
1.0.0 |
√ |
1.0.0 |
xview-device
跨平台 UTS 设备标识插件,覆盖 Android、iOS、HarmonyOS、Web、微信小程序。提供统一的 getDeviceId、getPlatformInfo、getDeviceInfo API(各含 Sync 版本),用于业务去重、设备信息展示与统计分析等场景。
支持平台与标识策略
| 平台 |
id 兜底链 |
osId |
| Android |
OAID → AndroidID → WidevineID → UUID |
AndroidID → UUID |
| iOS |
IDFA → IDFV → Keychain UUID |
IDFV → UUID |
| HarmonyOS |
OAID → ODID → UUID |
ODID → UUID |
| Web |
环境指纹 |
环境指纹(同 id) |
| 微信小程序 |
环境指纹 |
环境指纹(同 id) |
- App 端:OAID、AndroidID、IDFV、ODID 等仅在插件内部读取,对外只暴露
id / idType / osId / osType。
- Web / 小程序:基于环境参数生成确定性环境指纹(
idType / osType = fingerprint),不读写 Storage;清缓存、刷新后同环境不变。不同用户可能碰撞,环境变更后 ID 可能变化。
- IDFA / OAID 受系统版本、权限、用户授权及厂商服务影响,可能为空并走后续兜底。
公开 API
| 方法 |
说明 |
getDeviceId(callback) |
异步获取设备唯一标识;Android / HarmonyOS 内部预取 OAID |
getDeviceIdSync() |
同步获取设备唯一标识 |
getPlatformInfo(callback) |
异步获取平台概要(品牌、型号、系统等) |
getPlatformInfoSync() |
同步获取平台概要 |
getDeviceInfo(callback) |
异步获取设备字段,对齐 uni.getDeviceInfo 常用项 |
getDeviceInfoSync() |
同步获取设备字段 |
返回结构
XviewUniqueIdInfo(getDeviceId)
| 字段 |
说明 |
id |
业务去重 ID,带兜底,五端尽量有值 |
idType |
id 来源:oaid / androidId / widevineId / idfa / idfv / odid / uuid / fingerprint / none |
osId |
OS 层主标识;App 不可用则兜底持久 UUID;Web / 小程序为环境指纹 |
osType |
androidId / idfv / odid / uuid / fingerprint / none |
XviewPlatformInfo(getPlatformInfo)
| 字段 |
说明 |
platform |
平台名称:Android / iOS / HarmonyOS / Web / MP-WEIXIN |
brand |
设备品牌 |
model |
设备型号 |
systemName |
系统名称 |
systemVersion |
系统版本 |
XviewDeviceInfo(getDeviceInfo)
| 字段 |
说明 |
deviceId |
插件持久 UUID(App)或指纹(Web / 小程序),语义对齐官方 deviceId |
deviceType |
设备类型,如 phone、pad、pc |
deviceOrientation |
portrait / landscape |
devicePixelRatio |
设备像素比 |
osName |
系统名称,如 android、ios、harmonyos |
osVersion |
系统版本 |
screenWidth / screenHeight |
屏幕宽高(px) |
statusBarHeight |
状态栏高度(px);不适用时为 0 |
uniPlatform |
运行平台:app、web、mp-weixin |
id 与 osId 的区别
id:业务去重主入口,按各平台兜底链选取(见上表)。
osId:OS 层主标识,不含 OAID、IDFA 等广告类标识。
典型情况:Android 上 id 为 OAID(idType=oaid),osId 为 AndroidID(osType=androidId)。主标识均不可用时,二者可能同为持久 UUID,可通过 idType / osType 区分。
使用示例
import {
getDeviceId,
getDeviceIdSync,
getPlatformInfo,
getPlatformInfoSync,
getDeviceInfo,
getDeviceInfoSync,
type XviewUniqueIdInfo
} from '@/uni_modules/xview-device'
// 异步(推荐:Android / HarmonyOS 会预取 OAID)
getDeviceId((info : XviewUniqueIdInfo) => {
console.log('业务 ID:', info.id, info.idType)
console.log('OS 标识:', info.osId, info.osType)
})
getPlatformInfo((platform) => {
console.log(platform.platform, platform.brand, platform.model)
})
getDeviceInfo((device) => {
console.log(device.deviceId, device.uniPlatform)
})
// 同步
const uniqueId = getDeviceIdSync()
const platform = getPlatformInfoSync()
const device = getDeviceInfoSync()