第三方应用APP唤起/调起 三大地图 百度/腾讯/高德 的 点/导航 安卓 和ios 带有三大地图的API开放平台地址

三大地图  APP 判断
    "com.baidu.BaiduMap 
    "com.autonavi.minimap 
    "com.tencent.map 

    let flatitude=e.latitude;
    let flongitude=e.longitude;
    let tlatitude='39.909187';
    let tlongitude='116.397451';
    let name='天安门';
    let url = "";
    let button=[{title: "腾讯地图"},{title: "百度地图"}, {title: "高德地图"}];

------------------------------------------------------------------------------------------------------------------安卓 这个亲测有用------------------------------------------------------------------------------------------------------------------------------------------


腾讯地图

API地址: "https://lbs.qq.com/webApi/uriV1/uriGuide/uriMobileRoute"
显示点:  `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=XXXXX`;
显示导航路径: `qqmap://map/routeplan?type=drive&from=当前位置&fromcoord=${flatitude},${flongitude}&to=${name}&tocoord=${tlatitude},${tlongitude}&referer=XXXXX`

 

高德地图

API地址 "https://lbs.amap.com/api/amap-mobile/guide/android/route "
(注意:[amapuri://route/plan/ ]才可唤起APP并导航,API地址下的[//uri.amap.com/navigation]没法唤起高德地图APP,只能在h5打开,设置了callnative=1依旧无法打开,甚至使用plus.runtime.openURL(url,()=>{}) 根本识别不了 )
打开点:   
 "ndroidamap://viewMap?sourceApplication=appname&poiname=${name}&lat=${tlatitude}&lon=${tlongitude}&dev=0"
打开导航路径: 
 "amapuri://route/plan/?sid=&slat=${flatitude}&slon=${flongitude}&sname=当前位置&did=&dlat=${tlatitude}&dlon=${tlongitude}&dname=${name}&dev=0&t=0"

百度地图 

API地址 "http://lbsyun.baidu.com/index.php?title=uri/api/android"

打开点:
" baidumap://map/marker?location=${latitude},${longitude}&title=${name}&coord_type=gcj02&src=andr.baidu.openAPIdemo"
打开导航路径:
 " baidumap://map/direction?origin=name:当前位置|latlng:${flatitude},${flongitude}&&destination=name:${name}|latlng:${tlatitude},${tlongitude}&coord_type=gcj02&mode=driving&src=${appid}"

------------------------------IOS-----没时间真机调试, 只是从开放平台弄来的-------------------------2020年11月30日(IOS的试过了也可以打开)
腾讯地图  

不变

高德地图

点  
url = `iosamap://viewMap?sourceApplication=applicationName&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`;
导航:
 url=`iosamap://path?sourceApplication=${appid}&sid=&slat=${flatitude}&slon=${flongitude}&sname=当前位置&did=&dlat=${tlatitude}&dlon=${tlongitude}&dname=${name}&dev=0&t=0`;

百度地图

点 :
 url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&content=${name}&src=ios.baidu.openAPIdemo&coord_type=gcj02`;
导航
url = `baidumap://map/direction?origin=name:当前位置|latlng:${flatitude},${flongitude}&&destination=name:${name}|latlng:${tlatitude},${tlongitude}&coord_type=gcj02$mode=driving&src=${appid}`;

苹果地图
url=`http://maps.apple.com/?q=${name}&ll=${latitude},${longitude}&spn=0.008766,0.019441`; (这个之前说不能用,后来有朋友测试说可以用了.大家酌情可试)

 

 

===================代码================================== 

if (plus.os.name == "Android") {//判断是安卓端
	plus.nativeUI.actionSheet({//选择菜单
		title: "选择地图应用",
		cancel: "取消",
		buttons: button,
	}, function(e) {
		switch (e.index) {
			case 1:
				url=`qqmap://map/routeplan?type=drive&from=当前位置&fromcoord=${flatitude},${flongitude}&to=${name}&tocoord=${tlatitude},${tlongitude}&referer=XXXXX`;
				break;
			case 2:
				url = `baidumap://map/direction?origin=name:当前位置|latlng:${flatitude},${flongitude}&&destination=name:${name}|latlng:${tlatitude},${tlongitude}&coord_type=gcj02&mode=driving&src=${appid}`;
				break; 
			case 3:   
				url=`amapuri://route/plan/?sourceApplication=${appid}&sid=&slat=${flatitude}&slon=${flongitude}&sname=当前位置&did=&dlat=${tlatitude}&dlon=${tlongitude}&dname=${name}&dev=0&t=0`; 
				break;
			default:
				break;
		}
		if (url != "") {
			url = encodeURI(url);
			//plus.runtime.openURL(url,function(e){})调起手机APP应用
			plus.runtime.openURL(url, function(e) {
				// No Activity found to handle Intent { act=android.intent.action.VIEW dat=${url} flg=0x10000000 }
				plus.nativeUI.alert("本机未安装指定的地图应用");
			});
		}
	})
} else {
	// iOS上获取本机是否安装了百度高德地图,需要在manifest里配置
	// 在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加
	//(如urlschemewhitelist:["iosamap","baidumap"])
	let apple={title: "Apple地图"};
	button.push(apple)
	plus.nativeUI.actionSheet({
		title: "选择地图应用",
		cancel: "取消",
		buttons: button,
	}, function(e) {
		switch (e.index) {
			case 1:
				url=`qqmap://map/routeplan?type=drive&from=当前位置&fromcoord=${flatitude},${flongitude}&to=${name}&tocoord=${tlatitude},${tlongitude}&referer=XXXXXX`;
				break;
			case 2:
				url = `baidumap://map/direction?origin=name:当前位置|latlng:${flatitude},${flongitude}&&destination=name:${name}|latlng:${tlatitude},${tlongitude}&coord_type=gcj02&mode=driving&src=${appid}`;
				break;
			case 3:
				url=`iosamap://path?sourceApplication=${appid}&sid=&slat=${flatitude}&slon=${flongitude}&sname=当前位置&did=&dlat=${tlatitude}&dlon=${tlongitude}&dname=${name}&dev=0&t=0`;
				break;
			case 4:// 这个苹果地图的打不开, 大家不要用了, 而且我也没找到任何文档,找到的麻烦跟我说一下啊
				url=`http://maps.apple.com/?q=${name}&ll=${latitude},${longitude}&spn=0.008766,0.019441`;
				break;
			default:
				break;
		}
		if (url != "") {
			url = encodeURI(url);
			plus.runtime.openURL(url, function(e) {
				plus.nativeUI.alert("本机未安装指定的地图应用");
			});
		}
	})
}

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值