uniapp获取设备的唯一标识uuid

更新日期: 2022-01-10 阅读: 6.8k 标签: uuid

UUID通用唯一识别码。目前最广泛应用的UUID,是微软公司的全局唯一标识符GUID。其目的是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。所以UDID是移动端相对最靠谱的设备标识码,不论Android或iOS,即使APP重装,值也不变,除非root手机(普通用户做不到)。

那么在使用uniapp开发移动端应用时候,如何获取设备的uuid呢?


一、HBuilderX2.0.0之前的版本使用

//获取设备的唯一标识号  
console.log("UUID: "+plus.device.uuid);

目前官网不推荐使用该方式了,建议使用5+ api的属性方式获取imei、imsi、uuid信息的代码调整使用plus.device.getInfo方法。为了保证向下兼容,目前还可以使用,但不一定可以获取到正确的值。

注意:调用plus.device.uuid不会触发授权提示框


二、HBuilderX2.0.0之后的版本使用

// 获取设备信息  
plus.device.getInfo({
success:(e)=>{
console.log('getDeviceInfo success: '+JSON.stringify(e));
},
fail:(e)=>{
console.log('getDeviceInfo failed: '+JSON.stringify(e));
}
});

方法调用成功,返回信息包括:国际移动设备身份码、国际移动用户识别码、设备的唯一标识(UUID)等信息。

注意:Android平台各大应用商店已经要求API等级(targetSdkVersion)为26或以上。高版本Android系统完善了授权系统,获取设备信息(如imei)需要经过用户授权确认,弹出获取设备信息的授权提示框:


在Android平台当应用需要获取设备信息时调用此API,就会触发弹出授权提示框,不获取设备信息是不会弹出设备信息授权提示框,并且需要用允许才能获取到对应的值。


三、andorid 10版本采用OAID

Android10以前获取设备标识(如IMEI、IMSI、Wi-Fi MAC地址等)涉及用户隐私且需用户授权,Android10+系统不再支持获取设备标识信息。

为解决此问题移动安全联盟联合各手机厂商推出移动智能设备标识公共服务平台提供补充设备标识体系,包括匿名设备标识符(OAID)、开发者匿名设备标识符(VAID)和应用匿名设备标识符(AAID)。 匿名设备标识符(OAID)最长为64位字符串,所有应用获取的值相同,可用于个性化推荐、广告等业务。 系统首次启动后生成,用户手动重置、恢复出厂设置、设备商重置、被刷机等操作会重置此标识。

plus.device.getOAID({  
success:(e)=>{
console.log('getOAID success: '+JSON.stringify(e));
},
fail:(e)=>{
console.log('getOAID failed: '+JSON.stringify(e));
}
});

注意:必须在Android - 10+,同时仅在华为、OPPO、VIVO、小米、联想等设备支持。


四、非 App端设备Id

非 App 端由 uni-app 框架生成并存储,清空 Storage 会导致改变。

uni.getSystemInfoSync().deviceId

在非app的使用场景下,我们可以使用这种方式来模拟唯一标识UUID。当然也可以使用fingerprint2.js来生成浏览器指纹标识,经测试也存在一定的不精准性(官网称具有95%以上的唯一性,大家可以下载来尝试),关于fingerprint2.js的介绍:https://www.fly63.com/nav/3481


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/11013

什么是UUId?理解UUId的五个版本和使用

UUID 的全称是 Universally Unique Identifier,中文为通用唯一识别码。构成:由一组32位数的16进制数字所构成。格式:以连字号分为五段,表现形式为8-4-4-4-12的32个字符

JS生成唯一id方式介绍(UUID和NanoID)

之前代码中前端生成唯一的id方式,一般采用uuid的方式,最近唯一id有了更好的方式,那就是NanoID,今天这篇文章记录一下NanoID 正在取代 UUID?及js 生成uuid及NanoID的方法

ULID 与 UUID:用于 JavaScript 的可排序随机 ID 生成器

UUID是软件开发中最常用的通用标识符之一。然而,在过去的几年里,新的替代品挑战了它的存在。其中,ULID 是领先的竞争对手之一,因为它提供可排序的唯一 ID。

UUID正在被NanoID取代?

UUID 是软件开发中最常用的通用标识符之一。然而,在过去的几年里,其他的竞品挑战了它的存在。其中,NanoID 是 UUID 的主要竞争对手之一。

Js生成UUID的几种方法

UUID(Universally Unique IDentifier) 全局唯一标识符。UUID是一种由算法生成的二进制长度为128位的数字标识符。在理想情况下,任何计算机和计算机集群都不会生成两个相同的UUID。

为什么不应该用 Date.now() 生成 ID,以及更好的做法

在编程时,我们经常需要生成唯一的标识符。很多人习惯用 Date.now() 来生成 ID,觉得这样简单方便。但实际上,这种做法存在不少问题。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!