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,因为鸿蒙系统的设备标识机制与安卓有所不同。以下是几种解决方案:

  1. 使用 plus.device.getInfo 的其他属性: 尝试获取设备的其他标识信息,如 imeiimsiuuid(如果可用)。示例代码:

    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));
      }
    });
    
  2. 使用 plus.device.uuid: 直接使用 plus.device.uuid 属性,但注意在鸿蒙上可能同样受限:

    var uuid = plus.device.uuid;
    if (uuid) {
      console.log('Device UUID: ' + uuid);
    } else {
      console.log('无法获取UUID');
    }
    
  3. 生成自定义唯一标识: 如果系统标识不可用,可以结合设备信息和随机生成字符串创建自定义标识,存储到本地。示例:

    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);
    
  4. 检查权限和兼容性

    • 确保应用有必要的设备信息读取权限(在 manifest.json 中配置)。
    • 确认 UniApp 和 HBuilderX 版本支持鸿蒙系统,必要时更新到最新版本。

如果以上方法仍无效,建议查阅鸿蒙官方文档或 UniApp 社区,了解针对鸿蒙系统的特定设备信息获取方式。

回到顶部