更新记录

1.0.0(2026-07-08)

  • 首发:Android / iOS / HarmonyOS / Web / 微信小程序五端设备标识与设备信息。
  • 公开 API:getDeviceIdgetPlatformInfogetDeviceInfo(各含 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、微信小程序。提供统一的 getDeviceIdgetPlatformInfogetDeviceInfo 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 设备类型,如 phonepadpc
deviceOrientation portrait / landscape
devicePixelRatio 设备像素比
osName 系统名称,如 androidiosharmonyos
osVersion 系统版本
screenWidth / screenHeight 屏幕宽高(px)
statusBarHeight 状态栏高度(px);不适用时为 0
uniPlatform 运行平台:appwebmp-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()

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。