一.背景
当前app里有地图功能,点击marker图标需要调起高德进行导航(需要传入当前起点和终点的经纬度以及当前位置名称和终点位置名称)
二.解决方案
执行以下事件会调用高德app,如果没有安装app系统会自动弹窗不需要处理这部分逻辑,将代码中的this.location.longitude换成自己的经纬度
.onClick(() => {
// 调起高德
let want: Want = {
uri:`amapuri://route/plan?sid=BGVIS1&slat=${this.location.latitude}&slon=${this.location.longitude}&sname=我的位置&dlat=${this.clickLocation.latitude}&dlon=${this.clickLocation.longitude}&dname=${this.clickTitle}&t=0&sourceApplication=applicationName`,
}
const ss = getContext(this) as common.UIAbilityContext
ss.startAbility(want, (err: BusinessError) => {
if (err.code) {
// 处理业务逻辑错误
console.error(`startAbility failed,code is ${err.code},message is ${err.message}`);
return
}
// 执行正常业务
console.info('startAbility succeed')
})
})
三.参考链接(参数配置)
https://lbs.amap.com/api/amap-mobile/guide/harmony-os/route-next