更新记录

1.0.2(2026-08-20)

  • 修复 iOS 云打包 load_transformed failed:恢复 index.utsDeviceBridge.swift 的显式 import,确保混编 Swift 源码被云端编译器正确解析。

1.0.1(2026-08-12)

  • 新增 register(options?),隐私同意后显式预取;Vue 侧须 { success } 对象形式;getter 不再自动 register。
  • 五端统一用 getDeviceId().id 作业务唯一标识;Web/MP:id 完整指纹、osId 精简指纹、deviceId Storage UUID。
  • Web 新增 StorageBridge;微信小程序新增 DeviceBridge;移除 uni.* 依赖。
  • App 端修复 register 回调、OAID Maven 仓库与 3s 超时;Harmony ArkTS 混编与 OAID 兜底;iOS 混编 import 修复。
  • 过滤无效标识(全零 UUID 等);补全设备信息字段;更新示例与文档。

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 跨平台设备唯一标识获取、OAID、IDFV、ODID

跨平台 UTS 设备标识插件,覆盖 Android、iOS、HarmonyOS、Web、微信小程序

提供统一的 registergetDeviceIdgetPlatformInfogetDeviceInfo API(各含 Sync 版本),适用于业务去重、设备信息展示与统计分析。

安装

uni_modules/xview-device 放入项目后,App 端需制作自定义调试基座(UTS 原生插件不会打进默认基座)。

import {
  register,
  getDeviceId,
  getDeviceIdSync,
  getPlatformInfo,
  getPlatformInfoSync,
  getDeviceInfo,
  getDeviceInfoSync,
  type XviewUniqueIdInfo,
  type XviewRegisterOptions
} from '@/uni_modules/xview-device'

核心概念

五端业务统一使用 getDeviceId().id 作为唯一标识。

字段 含义
id 唯一 ID,业务去重主 ID,各平台按兜底链选取
idType id 的来源类型
osId OS 层主标识(App 为系统 ID;Web/MP 为精简环境指纹)
osType osId 的来源类型
deviceId 插件持久 UUID(getDeviceInfo 返回;Web/MP 存 Storage)

各平台标识策略

平台 id 兜底链 osId deviceId 存储
Android OAID → AndroidID → WidevineID → UUID AndroidID → UUID SharedPreferences
iOS IDFA → IDFV → Keychain UUID IDFV → UUID Keychain
HarmonyOS OAID → ODID → UUID ODID → UUID Preferences
Web 完整环境指纹 → UUID 精简环境指纹 → UUID localStorage
微信小程序 完整环境指纹 → UUID 精简环境指纹 → UUID wx Storage

公开 API

方法 说明
register(options?) 隐私同意后显式调用;Android/Harmony 预取 OAID,iOS 触发 ATT,Web/MP 预热 Storage
getDeviceId(callback) 异步获取设备唯一标识
getDeviceIdSync() 同步获取设备唯一标识
getPlatformInfo(callback) 异步获取平台概要
getPlatformInfoSync() 同步获取平台概要
getDeviceInfo(callback) 异步获取设备字段(对齐 uni.getDeviceInfo 常用项)
getDeviceInfoSync() 同步获取设备字段

register 参数

type XviewRegisterOptions = {
  success?: () => void   // 注册完成后回调(推荐)
  complete?: () => void  // 与 success 等价
}

重要

  • uni-app Vue 侧请使用 register({ success: () => {} })不要 register(() => {}),否则 App 端回调可能不触发。
  • register() 不会getDeviceId 等 getter 内部自动调用,需业务在隐私同意后显式调用。

返回结构

XviewUniqueIdInfo

字段 说明
id 业务去重 ID
idType oaid / androidId / widevineId / idfa / idfv / odid / uuid / fingerprint / none
osId OS 层标识;Web/MP 为精简环境指纹
osType androidId / idfv / odid / uuid / fingerprint / none

XviewPlatformInfo

字段 说明
platform Android / iOS / HarmonyOS / Web / MP-WEIXIN
brand 设备品牌
model 设备型号
systemName 系统名称
systemVersion 系统版本

XviewDeviceInfo

字段 说明
deviceId 插件持久 UUID
deviceType phone / pad / pc
deviceOrientation portrait / landscape
devicePixelRatio 设备像素比
osName androidiosharmonyos
osVersion 系统版本
screenWidth / screenHeight 屏幕宽高(px)
statusBarHeight 状态栏高度(px);Web 等为 0
uniPlatform app / web / mp-weixin

推荐调用流程

// 1. 用户同意隐私政策
register({
  success: () => {
    // 2. 读取业务唯一标识
    getDeviceId((info: XviewUniqueIdInfo) => {
      console.log('唯一标识:', info.id, info.idType)
      console.log('OS 标识:', info.osId, info.osType)
    })
  }
})

同步读取:

const info = getDeviceIdSync()
const platform = getPlatformInfoSync()
const device = getDeviceInfoSync()

隐私、权限声明

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

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

插件不采集任何数据

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

暂无用户评论。