做白日梦的包子
做白日梦的包子
  • 发布:2026-04-07 16:59
  • 更新:2026-04-07 17:03
  • 阅读:10

鸿蒙系统4,在HbuilderX版本为5.0+时,调用uni.getLocation type:wgs84 ,会获取不到经纬度

分类:HBuilderX

鸿蒙系统4,在HbuilderX版本为5.0+时,调用uni.getLocation type:wgs84 ,会获取不到经纬度,把HbuilderX版本降到4.85时,系统获取定位正常,这跟HbuilderX的版本有关系?

2026-04-07 16:59 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题确实与 HBuilderX 版本有关,主要是因为 HBuilderX 4.61 版本前后对鸿蒙系统定位模块的配置节点名称进行了变更

问题原因

在 HBuilderX 4.61 之前的版本(如你使用的 4.85),鸿蒙系统定位模块在 manifest.json 中的配置节点名为 uni-getLocation;而从 HBuilderX 4.61 及之后的版本(包括 5.0+),该节点名称已变更为 uni-location

如果升级 HBuilderX 后未同步更新 manifest.json 中的配置,会导致系统定位模块未正确启用,从而出现调用 uni.getLocationtypewgs84 时无法获取经纬度的情况。

解决方案

1. 更新 manifest.json 模块配置

请将 manifest.json 中鸿蒙平台的模块配置从旧节点名更新为新节点名:

HBuilderX 4.61 之前(如 4.85):

{  
  "modules": {  
    "uni-getLocation": {  
      "system": {}  
    }  
  }  
}

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

HBuilderX 4.61 及 5.0+ 版本:

{  
  "modules": {  
    "uni-location": {  
      "system": {}  
    }  
  }  
}

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

参考文档:鸿蒙平台配置 - uni-location-system

2. 配置鸿蒙定位权限

即使模块配置正确,鸿蒙平台也需要单独配置位置权限。请在 harmony-mp-configs/entry/src/main/module.json5requestPermissions 字段中添加:

"requestPermissions": [  
  "ohos.permission.LOCATION",  
  "ohos.permission.APPROXIMATELY_LOCATION"  
]

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

3. 代码调用顺序

在鸿蒙平台上,必须先请求用户授权,再获取位置:

uni.authorize({  
  scope: 'scope.userLocation',  
  success: () => {  
    uni.getLocation({  
      type: 'wgs84',  
      success: (res) => {  
        console.log('纬度:', res.latitude);  
        console.log('经度:', res.longitude);  
      },  
      fail: (err) => {  
        console.error('定位失败:', err);  
      }  
    });  
  },  
  fail: () => {  
    console.error('用户未授权定位权限');  
  }  
});

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

4. AGC 后台配置

确保已在 华为 AppGallery Connect 后台 开通地图服务。

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

内容为 AI 生成,仅供参考

要回复问题请先登录注册