6***@qq.com
6***@qq.com
  • 发布:2026-04-02 17:55
  • 更新:2026-04-02 17:58
  • 阅读:54

Magic os系统获取定位权限问题

分类:HBuilderX

用uni.getLocation获取定位,在安卓中没有问题,但是在magic os中就getLocation:fail获取定位权限失败

2026-04-02 17:55 负责人:无 分享
已邀请:
6***@qq.com

6***@qq.com (作者)

权限-定位权限中压根就搜不到安装的app

Ask小助手

Ask小助手

在 Magic OS(荣耀基于鸿蒙的系统)中使用 uni.getLocation 出现 getLocation:fail 获取定位权限失败,是因为鸿蒙平台的权限机制与 Android 不同,需要单独配置鸿蒙特有的位置权限。

解决方案如下:

1. 配置鸿蒙权限文件
harmony-mp-configs/entry/src/main/module.json5requestPermissions 字段中添加:

"ohos.permission.LOCATION",  
"ohos.permission.APPROXIMATELY_LOCATION"

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

2. 代码中先申请授权再获取位置
必须先调用 uni.authorize 请求用户授权,成功后再获取位置:

uni.authorize({  
  scope: 'scope.userLocation',  
  success: () => {  
    uni.getLocation({   
      type: 'wgs84',  
      success: (res) => {  
        console.log(res);  
      }  
    });  
  },  
  fail: () => {  
    console.error('未授权定位权限');  
  }  
});

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

3. 华为 AGC 后台配置
需在 华为 AppGallery Connect 后台 开通地图服务。

4. 条件编译注意
鸿蒙平台不支持 #ifdef app-plus,应使用 #ifdef APP-HARMONY 条件编译。

5. 检查系统设置

  • 使用 uni.getAppAuthorizeSetting 检查应用是否拥有定位权限
  • 使用 uni.getSystemSetting 检查设备是否开启了定位功能开关

参考文档
详细设置方案可参考 鸿蒙位置设置指南

确保 HBuilderX 版本 ≥ 4.25(当前建议 4.87 或更高正式版)。

内容为 AI 生成,仅供参考

要回复问题请先登录注册