IOS端 uni.openLocation接口查看位置,然后调用第三方导航,如何跳转到自己安装的高德APP,而不是苹果系统自带的简版高德地图
- 发布:2018-12-20 11:21
- 更新:2022-04-13 17:56
- 阅读:5279
回梦無痕 - 暂停服务
APP和H5端可以使用scheme方式唤醒高德地图进行导航
iosamap://navi?sourceApplication=applicationName&poiname=fangheng&poiid=BGVIS&lat=36.547901&lon=104.258354&dev=1&style=2
高德地图相关文档
1***@qq.com - 热衷新技术
解决方案如下:
// 导航
navigationTo(item) {
//打开第三方地图
const latitude = Number(item.latitude)
const longitude = Number(item.longitude)
if (plus.os.name == 'Android') {
uni.openLocation({
latitude: latitude,
longitude: longitude,
name: item.siteDetail,
scale: 12,
success() {
console.log('success')
}
})
} else { // ios默认打开高德地图
this.iosOpenMap(latitude, longitude, item.siteDetail)
}
},
iosOpenMap(latitude, longitude, name) {
let url = ''
plus.nativeUI.actionSheet({
title: "选择地图应用",
cancel: "取消",
buttons: [{
title: "高德地图"
}]
}, function(e) {
switch (e.index) {
case 1:
url =
`iosamap://viewMap?sourceApplication=applicationName&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
break;
default:
break;
}
if (url != "") {
url = encodeURI(url);
plus.runtime.openURL(url, function(e) {
plus.nativeUI.alert("本机未安装指定的地图应用");
});
}
})
},
需要注意:
iOS上获取本机是否安装了百度高德地图,需要在manifest里配置,在manifest.json文件app-plus->distribute->ios-urlschemewhitelist节点下添加 "iosamap"
6***@qq.com (作者)
感谢大神的帮助,可以打开了
2018-12-20 22:15
8***@qq.com
回复 6***@qq.com:你是怎么显示的第三方的地图导航的啊?我这openLocation点击去这里只显示Apple地图的
2019-03-29 16:10