更新记录
1.0.0(2026-04-20)
首次发布,支持android和ios
平台兼容性
uni-app(4.61)
| Vue2 | Vue2插件版本 | Vue3 | Vue3插件版本 | Chrome | 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 | 9.0 | 1.0.0 | 13 | 1.0.0 | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.61)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|---|
| × | × | 9.0 | 1.0.0 | 13 | 1.0.0 | × | × |
yc-china-api
由于uniapp对于设备信息的支持不够友好,所以写一个比较通用的设备信息采集(国内合规)插件。
更新日志
| 日期 | 版本 | 内容 |
|---|---|---|
| 2026-04-20 | 1.0.0 | 首次发布 |
支持平台
android和ios 为了兼容原生环境(object-C/java等)和uniapp环境(js/ts等),以及考虑数值类型的精度可能会丢失,所以,所有参数和返回内容,均为字符串。
方法和说明
| android方法 | 同步还是异步 | 说明 |
|---|---|---|
| getAdvertiserId | 异步 | 获取oaid |
| getRefer | 异步 | 获取本app安装refer |
| getDeviceInfo | 同步 | 设备信息简要,json字符串,为了减少方法调用,同步能获取到的信息都整合到这里了,见“设备信息”说明 |
| getDeviceInfoAll | 同步 | 更完整的设备信息,加密版,解密方式见“解密”说明 |
| ios方法 | 同步还是异步 | 说明 |
|---|---|---|
| getBundleId | 同步 | 获取bundleId,比如:com.x.x |
| applyAdvertiserId | 异步 | 申请idfa权限,触发权限弹窗,在回调中返回idfa(未授权或获取失败则返回空字符串) |
| getAdvertiserId | 异步 | 获取idfa,不触发权限弹窗,无权限的话返回空字符串 |
| getDeviceInfo | 同步 | 设备信息简要,json字符串,为了减少方法调用,同步能获取到的信息都整合到这里了,见“设备信息”说明 |
| getDeviceInfoAll | 同步 | 更完整的设备信息,加密版,解密方式见“解密”说明 |
调用示例
import * as YcApi from "@/uni_modules/yc-china-api";
let bundleId = YcApi.getBundleId()
YcApi.getAdvertiserId(data => {
// data就是oaid/idfa
})
设备信息
// android
{
mamu: "", // 设备厂商
brand: "", // 设备品牌
model: "", // 设备型号
api_level: "", // android系统的api等级,比如"36"表示android 16
yc_id: "", // 设备唯一id(app间不互通,同一个app卸载重装不变)
pkg: "", // 包名
advertiser_id: "", // oaid,建议先调用getAdvertiserId,否则无值
anid: "" // android id
}
// ios
{
model: "", // 设备型号
os_version: "", // ios系统版本
bundle_id: "", // bundleId
advertiser_id: "", // idfa,建议先调用getAdvertiserId,否则无值
idfv: "", // idfv
yc_id: "", // 设备唯一id,卸载重装不变
country: "", // 系统设置的国家/地区(两位,比如:US)
country_apple: "", // apple认定的国家(三位,比如:USA),通过ios系统接口获得,首次可能无值,如依赖该值,建议每1秒重试一次getDeviceInfo(),最多3次即可
timezone: "", // 系统设置的时区
}
解密
由于getDeviceInfoAll获取到的信息与风控相关,需要请求网络接口进行鉴定(建议在服务器端进行) [POST] https://pfront.wzyoucai.com/interface/device/info/all header Content-Type: application/json body
{
"plat": "", // 必填,平台,android或ios
"pkg": "", // 必填,android传包名,ios传bundleId,示例:com.x.x
"data": "", // 通过getDeviceInfoAll方法获取到的值
"version": "1.0.0", // 可选,uts插件版本
}
请求示例:
curl -X POST -H 'Content-Type: application/json' -d '{"plat":"ios","pkg":"com.x.x","data":"xxx","version":"1.0.0"}' https://pfront.wzyoucai.com/device/info/all
建议:一般情况下,客户端直接用getDeviceInfo即可;如果对风控有要求可以调用getDeviceInfoAll,发到自己的服务器端,然后请求该接口解密。
依赖说明
android,云打包自定oaid的包,无需特殊配置;离线打包,需要把官方打包工程中的oaid_xxx.aar复制到libs里 ios,要采集idfa的话,无论是云打包还是离线打包都要配NSUserTrackingUsageDescription(勾选了获取idfa都默认配了),如果你的项目不想给用户弹窗“是否允许追踪”,需要把manifest.json里面的 "sdkConfigs" : { "oauth" : {}, "ad" : {} // 这个去掉,如果开了广告,官方会默认带这个(会在app首次打开申请idfa权限),uts插件里没法帮你去掉 }

收藏人数:
购买普通授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 3
赞赏 0
下载 11594318
赞赏 1905
赞赏
京公网安备:11010802035340号