s***@askdwl.com
s***@askdwl.com
  • 发布:2026-08-04 17:32
  • 更新:2026-08-04 17:33
  • 阅读:22

【报Bug】ios使用腾讯定位,uni.startLocationUpdate指定type: 'gcj02'后uni.onLocationChange无法获取定位

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: dd

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: iOS

手机系统版本号: iOS 26

手机厂商: 苹果

手机机型: iphone 17 pro max

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

操作步骤:

麻烦帮忙看下

预期结果:

麻烦帮忙看下

实际结果:

麻烦帮忙看下

bug描述:

离线打包配置腾讯定位key之后
uni.getLocation({
type: 'gcj02',
success(res) {

                console.log('当前位置的经度:' + res.longitude);  
                console.log('当前位置的纬度:' + res.latitude);  
                that.longitude = res.longitude  
                that.latitude = res.latitude  
            },  
            fail(err) {  
                console.log(JSON.stringify(err))  
            }  
        })  

可以拿到定位但是
uni.startLocationUpdate({
type: 'gcj02',
success(res) {
console.log('开启应用接收位置消息成功')
uni.onLocationChange(onLocationChange);

        uni.onLocationChangeError(onLocationChangeError)  
    },  
    fail(err) {  
        console.error('开启应用接收位置消息失败:', err)  
    },  
    complete(msg) {  
        console.log('调用开启应用接收位置消息 API 完成')  
    }  
});  

提示
{
"errMsg": "onLocationChange:fail Not Support CoordsType,https://ask.dcloud.net.cn/article/282"
}

2026-08-04 17:32 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

感谢您的反馈。针对您提交的 Bug 报告,官方人员需要进行评审,以确认问题是否成立并评估能否进行复现排查。以下是评审意见:

1. Bug 反馈内容完整性评审

  • BUG 描述:描述较为清晰,明确指出了在 iOS 离线打包配置腾讯定位 Key 后,uni.getLocation 可以正常获取定位,但 uni.startLocationUpdate 结合 uni.onLocationChange 使用时,指定 type: 'gcj02' 会报错 Not Support CoordsType
  • 代码示例:提供的代码片段包含了成功和失败的两部分调用逻辑,基本完整,官方人员可以直接参考测试。
  • 复现步骤:复现步骤填写为“麻烦帮忙看下”,不够清晰。建议补充具体的操作路径,例如:是在应用启动时调用,还是点击某个按钮触发?由于涉及离线打包,建议说明使用的 SDK 版本号。
  • 预期结果与实际结果:均填写为“麻烦帮忙看下”。建议明确预期结果(如:uni.onLocationChange 能正常回调获取 gcj02 坐标系的位置信息)和实际结果(已提供报错信息 JSON,这点很好)。
  • 分类信息:分类信息非常完整,包含了 HBuilderX 版本号、手机 OS 平台、系统版本、机型和 Vue 版本,有助于定位问题。

2. Bug 是否成立分析

根据官方文档和知识库信息,针对您反馈的问题分析如下:

  1. 坐标系支持情况
    根据 App端Geolocation定位说明 文档,在 App 端接入腾讯定位 SDK 时,腾讯定位 SDK 仅支持 gcj02 坐标系。同时,文档指出如果在 App 模块中同时勾选了系统定位和腾讯定位,会根据 type 值决定调用规则:typewgs84 使用系统定位,typegcj02 则使用腾讯定位。因此,您指定 type: 'gcj02' 来使用腾讯定位是正确的预期用法。

  2. 持续定位 API 的平台差异
    根据 uni.startLocationUpdate 兼容性 文档说明,uni.startLocationUpdatetype 参数(用于指定坐标系类型)在平台差异说明中仅支持微信小程序和抖音小程序。这意味着在 App 平台(包括 iOS),该 API 的 type 参数可能未按预期生效或存在解析异常,这可能是导致报错 Not Support CoordsType 的原因。

  3. 已知问题与排查建议
    在社区中,有其他开发者反馈过类似 uni.startLocationUpdate + uni.onLocationChange 在配置了第三方 SDK(如百度地图)时,出现 not support gcj02 的报错(参考案例)。根据该案例的官方回复与最终结果,问题可能与离线打包的 SDK 基座版本有关,旧版本的基座可能存在兼容性问题。

    您当前使用的是 HBuilderX 5.07 正式版,建议您排查以下两点:

    • 确认离线打包时使用的 SDK 版本是否已更新至与 5.07 匹配的最新版本,旧版 SDK 可能未适配此功能。
    • 检查 iOS 离线工程的 manifest 配置或原生工程中,是否正确集成了腾讯定位的相关模块及其依赖库。

总结
该 Bug 反馈有一定的依据,App 端持续定位 API 在结合第三方 SDK 使用时确实可能存在坐标系支持异常的情况。但由于复现步骤和预期/实际结果信息缺失,且涉及离线打包环境,无法直接断定为框架级 Bug。
建议您补充复现步骤及预期/实际结果描述,并核对离线打包 SDK 版本。如果确认 SDK 版本最新且配置无误后问题依旧,建议提供完整的可复现 demo 工程以便官方进一步排查。

内容为 AI 生成,仅供参考

要回复问题请先登录注册