export const openLocation = (paras: any) => {
// openLocation打开的腾讯地图为火星坐标,需转换
const type = paras.type || 'wgs84'
const gcj02 = togcj02(type, paras)
uni.openLocation({
latitude: gcj02.latitude, // 纬度,浮点数,范围为90 ~ -90
longitude: gcj02.longitude, // 经度,浮点数,范围为180 ~ -180。
name: paras.name, // 位置名
address: paras.address || '', // 地址详情说明
scale: 15, // 地图缩放级别,整形值,范围从1~28。默认为最大,
fail: (err) => {
log('openLocation fail: ', err)
}
})
}
- 发布:2026-05-11 18:16
- 更新:2026-05-11 18:18
- 阅读:23
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 15.3
HBuilderX类型: 正式
HBuilderX版本号: 5.06
手机系统: Android
手机系统版本号: Android 10
手机厂商: 小米
手机机型: mix 3
页面类型: vue
vue版本: vue3
打包方式: 离线
项目创建方式: HBuilderX
App下载地址或H5⽹址: https://link.vvstc.com/index.html?id=com.kwrzcu.kcfsod
示例代码:
操作步骤:
打开信息详情界面 → 点击地址 → 进入地图页面一直未加载完成 → App 闪退。
调用的代码 点击地址 调用 uni.openLocation。 参数传入没有问题,同样的在苹果打开是正常的,三星也是正常的。
打开信息详情界面 → 点击地址 → 进入地图页面一直未加载完成 → App 闪退。
调用的代码 点击地址 调用 uni.openLocation。 参数传入没有问题,同样的在苹果打开是正常的,三星也是正常的。
预期结果:
app 闪退
app 闪退
实际结果:
app 闪退
app 闪退
bug描述:
Android App 奔溃问题
1. 奔溃场景
在android app中
打开信息详情界面 → 点击地址 → 进入地图页面一直未加载完成 → App 闪退。
调用的代码 点击地址 调用 uni.openLocation。 参数传入没有问题,同样的在苹果打开是正常的,三星也是正常的。
1 个回复
Ask小助手 - Ask社区AI助手
作为DCloud官方人员,我对这个bug反馈进行评审,评价如下:
这个反馈提供了关键信息,但完整性上有所欠缺,目前无法直接判定为一个有效的bug。具体分析如下:
反馈内容完整性评价
BUG描述:描述比较清晰,说明了在特定Android设备上调用
uni.openLocation时,地图页面长时间加载后闪退。但缺少一个关键点:地图页面是显示空白,还是有加载出部分内容后闪退? 这个细节有助于判断是地图SDK初始化问题还是渲染问题。代码示例:提供的代码片段展示了
openLocation的调用逻辑,并进行了坐标转换。代码本身看起来没有明显问题。但是,代码示例不完整,无法直接运行,因为缺少togcj02函数的具体实现,官方人员无法直接复现你的完整逻辑。复现步骤:步骤描述清晰,结合代码示例基本可以理解操作流程。但是,根据现有信息,官方人员可能无法稳定复现。因为你提到“同样的在苹果打开是正常的,三星也是正常的”,这说明问题可能和特定机型(小米 Mix 3)或系统环境有关。你需要补充更多有助于复现问题或定位原因的信息,比如该设备上是否安装并登录了高德地图App、发生闪退时HBuilderX控制台是否有更详细的错误日志输出。
预期结果:你填写的预期结果是“app 闪退”,这显然不合理。预期应该是“正常打开地图并显示指定位置”。这部分可能是个笔误。
实际结果:实际结果是“app 闪退”,这是一个需要解决的问题,不是误报。
分类信息:基本信息比较完整,提供了开发环境、HBuilderX版本、手机系统、设备型号等。但有一个重要的分类信息缺失:你未说明当前页面的类型是 vue 页面还是 nvue 页面,以及打包方式是云打包还是离线打包。这对于地图问题(尤其是nvue页面直接使用原生渲染)的排查至关重要。
Bug是否成立及原因分析
根据知识库,App端使用地图相关功能(包括
uni.openLocation)需要正确配置三方地图SDK。地图配置检查:知识库明确指出,App端
uni.openLocation打开的是高德地图,且打包后必须由开发者在manifest.json中配置高德地图的AppKey,并确保包名、AppKey、证书信息匹配。真机运行或自定义基座调试时需要使用自定义基座来生效这些配置。 详情参考页面类型与内存问题:知识库的ISSUE系统记录显示,在自定义基座运行时,如果项目页面元素过于复杂,可能会因内存溢出(OOM)导致闪退。 查看 ISSUE 详情
建议补充的信息和排查步骤
为了能更准确地定位问题,建议你补充以下信息:
vue还是nvue。manifest.json中是否已正确配置高德地图的 AppKey。综上所述,这个反馈为问题的解决提供了明确的方向,但缺乏关键的配置信息和运行环境信息,目前无法被确认为一个代码层面的bug。更大概率是高德地图SDK配置问题,或特定设备上的兼容性/内存问题。建议你按照上述排查方向进行检查和补充信息。
要回复问题请先登录或注册
公告
更多>相关问题