VUE_H5页面跳转第三方地图导航,兼容微信浏览器

114 篇文章 8 订阅
11 篇文章 1 订阅
本文介绍了在uniapp项目中,如何使用`uni.showActionSheet`展示地图应用选择功能,根据不同平台(iOS和Android)动态调用腾讯、百度或高德地图API,提供精准位置导航。
摘要由CSDN通过智能技术生成

在这里插入图片描述
当前项目是uniapp项目,若不是需要替换uni.showActionSheet选择api

onMap(address = '', organName = '', longitude = 0, latitude = 0){
	var ua = navigator.userAgent.toLowerCase();
	var isWeixin = ua.indexOf('micromessenger') != -1;
	if(isWeixin) {
		const mapUrl_tx = "http://apis.map.qq.com/uri/v1/marker?marker=coord:" + latitude + "," + longitude + ";title:" + organName + ";addr:" + address + "&referer=yellowpage";
		window.open(mapUrl_tx)
		return false
	}
	const actions = [{id:1, name: '腾讯地图' }, {id:2, name: '百度地图' }, {id:3, name: '高德地图' }]
	uni.showActionSheet({
		itemList: actions.map(item => item.name),
		success: (res)=> {
			let url = "";
			const u = navigator.userAgent;
			const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
			const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') >-1;
			let index = actions[res.tapIndex].id
			if(isAndroid){
				switch (index) {
					case 1:
						url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=H7JBZ-5WUWN-BHDFN-SEHOK-RREKF-I3BD5`;
						break;
					case 2:
						url = `baidumap://map/marker?location=${latitude},${longitude}&title=${address}&coord_type=gcj02&src=andr.baidu.openAPIdemo`;
						break;
					case 3:
						url = `androidamap://viewMap?sourceApplication=appname&poiname=${address}&lat=${latitude}&lon=${longitude}&dev=0`;
						break;
					default:
						break;
				}
				if (url != "") {
					window.open(url,"_blank")
				}
			}else if(isiOS){
				switch (index) {
					case 1:
						url = `qqmap://map/geocoder?coord=${latitude},${longitude}&referer=H7JBZ-5WUWN-BHDFN-SEHOK-RREKF-I3BD5`;
						break;
					case 2:
						url = `baidumap://map/marker?location=${latitude},${longitude}&title=${address}&content=${address}&src=ios.baidu.openAPIdemo&coord_type=gcj02`;
						break;
					case 3:
						url = `iosamap://viewMap?sourceApplication=applicationName&poiname=${address}&lat=${latitude}&lon=${longitude}&dev=0`;
						break;
					default:
						break;
				}
				if (url != "") {
					window.open(url,"_blank")
				}
			}
		},
		fail: function (res) {
			console.log(res.errMsg)
		}
	})
}
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值