uniapp plus.device.getinfo 获取不到鸿蒙系统的uuid怎么办?
在uniapp中使用plus.device.getinfo获取设备信息时,发现鸿蒙系统的uuid无法正确获取,返回值为空或undefined。其他Android/iOS设备正常,请问如何解决鸿蒙系统下的兼容性问题?是否需要特殊配置或替代方案?
2 回复
鸿蒙系统可能不兼容plus.device.getinfo。可尝试用plus.device.getUUID()获取,或通过uni.getSystemInfo判断系统类型,鸿蒙需用其他API或插件获取设备标识。
更多关于uniapp plus.device.getinfo 获取不到鸿蒙系统的uuid怎么办?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在鸿蒙系统中,plus.device.getinfo 可能无法获取到 UUID,因为鸿蒙系统的设备标识机制与安卓有所不同。以下是几种解决方案:
-
使用
plus.device.getInfo的其他属性: 尝试获取设备的其他标识信息,如imei、imsi或uuid(如果可用)。示例代码:plus.device.getInfo({ success: function(e) { console.log('Device IMEI: ' + e.imei); console.log('Device IMSI: ' + e.imsi); // 检查是否有其他可用属性 }, fail: function(e) { console.log('获取设备信息失败: ' + JSON.stringify(e)); } }); -
使用
plus.device.uuid: 直接使用plus.device.uuid属性,但注意在鸿蒙上可能同样受限:var uuid = plus.device.uuid; if (uuid) { console.log('Device UUID: ' + uuid); } else { console.log('无法获取UUID'); } -
生成自定义唯一标识: 如果系统标识不可用,可以结合设备信息和随机生成字符串创建自定义标识,存储到本地。示例:
function generateCustomUUID() { let customUUID = localStorage.getItem('customUUID'); if (!customUUID) { customUUID = 'custom_' + Date.now() + '_' + Math.random().toString(36).substr(2, 9); localStorage.setItem('customUUID', customUUID); } return customUUID; } // 使用自定义UUID var uuid = generateCustomUUID(); console.log('Custom UUID: ' + uuid); -
检查权限和兼容性:
- 确保应用有必要的设备信息读取权限(在 manifest.json 中配置)。
- 确认 UniApp 和 HBuilderX 版本支持鸿蒙系统,必要时更新到最新版本。
如果以上方法仍无效,建议查阅鸿蒙官方文档或 UniApp 社区,了解针对鸿蒙系统的特定设备信息获取方式。

