uni-app使用uni.openLocation 打开导航无法直接拉起手机安装的第三方地图如腾讯地图高德地图只有鸿蒙中拉不起第三方导航

uni-app使用uni.openLocation 打开导航无法直接拉起手机安装的第三方地图如腾讯地图高德地图只有鸿蒙中拉不起第三方导航

属性
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 11
手机系统 HarmonyOS NEXT
手机系统版本号 HarmonyOS 6.0.0
手机厂商 华为
手机机型 mate 60 pro
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 CLI
CLI版本号 4.85

bug描述

使用uni.openLocation 打开导航,无法直接拉起手机安装的第三方地图,如腾讯地图、高德地图

1、首次点击导航控制台日志:

2、从搜索返回目的地页面后再次点击导航加载成功;

3、导航界面无法拉起安装的腾讯地图;

腾讯地图、高德地图已安装

操作步骤

function openLocation(obj : OpenLocation) {  
    if (!obj.latitude || !obj.longitude) return;  
    uni.openLocation({  
        latitude: Number(obj.latitude), //维度  
        longitude: Number(obj.longitude), //经度  
        scale: obj.scale || 18, //缩放比例,范围5~18,默认为18  
        name: obj.name || '',  
        address: obj.address || '',  
        fail: () => { },  
    });  
}

预期结果

function openLocation(obj : OpenLocation) {  
    if (!obj.latitude || !obj.longitude) return;  
    uni.openLocation({  
        latitude: Number(obj.latitude), //维度  
        longitude: Number(obj.longitude), //经度  
        scale: obj.scale || 18, //缩放比例,范围5~18,默认为18  
        name: obj.name || '',  
        address: obj.address || '',  
        fail: () => { },  
    });  
}

实际结果

function openLocation(obj : OpenLocation) {  
    if (!obj.latitude || !obj.longitude) return;  
    uni.openLocation({  
        latitude: Number(obj.latitude), //维度  
        longitude: Number(obj.longitude), //经度  
        scale: obj.scale || 18, //缩放比例,范围5~18,默认为18  
        name: obj.name || '',  
        address: obj.address || '',  
        fail: () => { },  
    });  
}  

需要在打开导航页面中拉起第三方导航

更多关于uni-app使用uni.openLocation 打开导航无法直接拉起手机安装的第三方地图如腾讯地图高德地图只有鸿蒙中拉不起第三方导航的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app使用uni.openLocation 打开导航无法直接拉起手机安装的第三方地图如腾讯地图高德地图只有鸿蒙中拉不起第三方导航的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


需补充鸿蒙平台下uni.openlocation的具体配置及替代方案。请提供HBuilderX版本、详细报错信息。 该问题请在专业群( uni-app鸿蒙化技术交流群 ) 咨询,群中有相关专业的管理员和群友。

您好,根据现有资料与官方说明,uni-app 在 HarmonyOS NEXT(鸿蒙 5/6)上调用 uni.openLocation 时,确实不会自动唤起已安装的第三方地图 App(腾讯地图、高德地图),而是以内嵌的 腾讯地图 Web 版 打开。这是当前平台的已知限制,并非配置错误,也不属于 bug。
原因总结

平台限制:HarmonyOS NEXT 目前仅内嵌腾讯地图 Web 方案,未实现 URL Scheme 跳转第三方地图的能力。
官方文档已明确说明:openLocation 兼容性 仅支持腾讯地图。
无需额外配置:manifest.json 中勾选腾讯地图并填写 key 仅用于地图展示,不影响跳转行为。

若您需要跳转到第三方地图 App 需自行拼接地图厂商的 URL Scheme,例如:

腾讯地图:qqmap://map/routeplan?type=drive&to=纬度,经度,名称
高德地图:amapuri://route/plan/?dlat=纬度&dlon=经度&dname=名称

可通过 plus.runtime.openURL 或 uts 插件实现跳转,示例代码:
// 唤起腾讯地图
plus.runtime.openURL(qqmap://map/routeplan?type=drive&to=${lat},${lng},${encodeURIComponent(name)}); 官方建议

短期方案:使用内嵌腾讯地图 Web 版(uni.openLocation 默认行为)。
长期方案:通过 uts 插件或原生模块封装 URL Scheme 跳转,插件市场已有社区方案(搜索关键词:“鸿蒙 地图跳转”)。

如需进一步协助实现跳转逻辑,建议到 DCloud 插件市场 搜索相关插件或提交具体需求。 内容为 AI 生成,仅供参考

回到顶部