- // 点击某个地方,调起下面的方法
- // 方法要传入需要标注地点的纬度latitude,经度longitude,名字name
- toMapAPP(latitude,longitude,name){
- let url = "";
- if (plus.os.name == "Android") {//判断是安卓端
- plus.nativeUI.actionSheet({//选择菜单
- title: "选择地图应用",
- cancel: "取消",
- buttons: [{title: "腾讯地图"},{title: "百度地图"}, {title: "高德地图"}]
- }, function(e) {
- switch (e.index) {
- //下面是拼接url,不同系统以及不同地图都有不同的拼接字段
- case 1:
- //注意referer=xxx的xxx替换成你在腾讯地图开发平台申请的key
- url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
- break;
- case 2:
- url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&coord_type=gcj02&src=andr.baidu.openAPIdemo`;
- break;
- case 3:
- url = `androidamap://viewMap?sourceApplication=appname&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
- break;
- default:
- break;
- }
- if (url != "") {
- url = encodeURI(url);
- //plus.runtime.openURL(url,function(e){})调起手机APP应用
- plus.runtime.openURL(url, function(e) {
- plus.nativeUI.alert("本机未安装指定的地图应用");
- });
- }
- })
- } else {
- // iOS上获取本机是否安装了百度高德地图,需要在manifest里配置
- // 在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加
- //(如urlschemewhitelist:["iosamap","baidumap"])
- plus.nativeUI.actionSheet({
- title: "选择地图应用",
- cancel: "取消",
- buttons: [{title: "腾讯地图"},{title: "百度地图"}, {title: "高德地图"}]
- }, function(e) {
- switch (e.index) {
- case 1:
- url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=xxx`;
- break;
- case 2:
- url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&content=${name}&src=ios.baidu.openAPIdemo&coord_type=gcj02`;
- break;
- case 3:
- 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("本机未安装指定的地图应用");
- });
- }
- })
- }
- }
- 当然,这只是拉起APP的操作,如果您想拉起APP并进入相关的模式,比如线路规划,骑行导航等,只需要将相关参数传入,并更改相关的URL值即可。在此提供一下高德地图的相关教程:https://lbs.amap.com/api/amap-mobile/guide/ios/route