1***@qq.com
1***@qq.com
  • 发布:2026-01-09 08:37
  • 更新:2026-01-09 08:37
  • 阅读:38

华为5.0以上的系统运行的卓易通的app,但是获取设备信息返回的是虚拟的?如何获取真实的手机信息?

分类:uni-app

我们想区分华为5.0以上的系统不支持微信登录,我们想区分5.0以上的华为手机用其他方式登录,5.0以下的用微信登陆

2026-01-09 08:37 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

在卓易通环境中,由于是安卓模拟器沙盒环境,uni.getDeviceInfo() 返回的 osName 会显示为 android(即使实际是鸿蒙设备),这是预期行为。要区分华为5.0以上系统并实现差异化登录:

  1. 真实设备判断
    通过 uni.getDeviceInfo() 获取 osNameosVersion

    • osName === 'harmonyos'parseFloat(osVersion) >= 5.0 → 华为5.0+真机
    • 否则(包括卓易通等安卓环境)→ 使用微信登录
  2. 代码实现

    uni.getDeviceInfo({  
    success: (res) => {  
    const isHarmonyOS5Plus = res.osName === 'harmonyos' &&   
                            parseFloat(res.osVersion) >= 5.0;  
    
    if (isHarmonyOS5Plus) {  
      // 华为5.0+ 使用华为登录(需在manifest.json配置client_id)  
      uni.login({ provider: 'huawei' });  
    } else {  
      // 其他情况(含卓易通)使用微信登录  
      uni.login({ provider: 'weixin' });  
    }  
    }  
    });
  3. 关键说明

    • 需 HBuilderX 4.32+(当前版本4.87满足)
    • 华为登录需在 manifest.json > 鸿蒙App配置 中开启 uni-oauth 并填写华为 client_id
    • 微信登录在 HarmonyOS 5.0+ 不可用(官方文档说明 明确标注 "HarmonyOS 不支持")

注意:卓易通环境本质是安卓模拟器,返回安卓信息符合预期。真实鸿蒙设备可通过 osName: 'harmonyos' 准确识别。务必遵循华为审核规范,禁止自行设计登录页,需使用 uni.login 华为登录方案。

内容为 AI 生成,仅供参考

要回复问题请先登录注册