6***@qq.com
6***@qq.com
  • 发布:2018-12-20 11:21
  • 更新:2022-04-13 17:56
  • 阅读:4829

IOS端 uni.openLocation如何调用高德地图,而不是苹果自带的简版高德地图

分类:uni-app

IOS端 uni.openLocation接口查看位置,然后调用第三方导航,如何跳转到自己安装的高德APP,而不是苹果系统自带的简版高德地图

2018-12-20 11:21 负责人:无 分享
已邀请:
回梦無痕

回梦無痕 - 暂停服务

APP和H5端可以使用scheme方式唤醒高德地图进行导航
iosamap://navi?sourceApplication=applicationName&poiname=fangheng&poiid=BGVIS&lat=36.547901&lon=104.258354&dev=1&style=2
高德地图相关文档

  • 6***@qq.com (作者)

    感谢大神的帮助,可以打开了

    2018-12-20 22:15

  • 8***@qq.com

    回复 6***@qq.com:你是怎么显示的第三方的地图导航的啊?我这openLocation点击去这里只显示Apple地图的

    2019-03-29 16:10

1***@qq.com

1***@qq.com - 热衷新技术

你是怎么显示的第三方的地图导航的啊?我使用openLocation,点击去这里 只显示Apple地图的

1***@qq.com

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"

该问题目前已经被锁定, 无法添加新回复