vue项目H5调起高德或百度地图手机应用,或调起高德百度网页版实现导航功能(已实现)

news/2024/11/22 9:37:54/

需求说明:H5实现唤起高德和百度地图导航到目标景点的功能

分析:用户通过点击选择使用百度还是高德地图,点击后调用guide方法,判断设备上是否有高德或者百度APP,有就直接调用APP,如果没有就调用网页版

实现效果

在这里插入图片描述
在这里插入图片描述

实现代码

//导航
guide(signMap) {let self = this;if (self.partnerAddress && self.partnerAddress != '') {//景点位置partnerAddress 景点经纬度lng latvar lng = self.lng;var lat = self.lat;if (signMap == 'gd') {// 高德地图if (self.customBrowserVersion().android) {window.location.href = "androidamap://viewMap?sourceApplication=appname&poiname=" + self.partnerAddress +"&lat=" + lat + "&lon=" + lng + "&dev=0";//判断是否跳转setTimeout(function () {let hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden ||window.document.webkitHiddenif (typeof hidden == "undefined" || hidden == false) {//调用高德地图window.location.href = "https://uri.amap.com/marker?position=" + lng + "," + lat +"&name=" + self.partnerAddress;}}, 2000);} else if (self.customBrowserVersion().ios) {window.location.href = "iosamap://viewMap?sourceApplication=appname&poiname=" + self.partnerAddress +"&lat=" + lat + "&lon=" + lng + "&dev=0";//判断是否跳转setTimeout(function () {let hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden ||window.document.webkitHiddenif (typeof hidden == "undefined" || hidden == false) {//调用高德地图window.location.href = "https://uri.amap.com/marker?position=" + lng + "," + lat +"&name=" + self.partnerAddress;}}, 2000);}} else if (signMap == 'bd') {// 百度地图if (self.customBrowserVersion().android) {//安卓操作系统let d = new Date();let t0 = d.getTime();window.location.href = "androidamap://viewMap?sourceApplication=appname&poiname=" + self.partnerAddress +"&lat=" + lat + "&lon=" + lng + "&dev=0";//由于打开需要1~2秒,利用这个时间差来处理--打开app后,返回h5页面会出现页面变成app下载页面,影响用户体验var delay = setInterval(function () {var d = new Date();var t1 = d.getTime();if (t1 - t0 < 3000 && t1 - t0 > 2000) {window.location.href = "http://api.map.baidu.com/marker?location=" + lat + "," +lng + "&title=" + self.partnerAddress +"&content=景点&output=html&src=webapp.baidu.openAPIdemo";}if (t1 - t0 >= 3000) {clearInterval(delay);}}, 1000);}if (self.customBrowserVersion().ios) {//ios操作系统let d = new Date();let t0 = d.getTime();window.location.href = "iosamap://viewMap?sourceApplication=appname&poiname=" + self.partnerAddress +"&lat=" + lat + "&lon=" + lng + "&dev=0";//由于打开需要1~2秒,利用这个时间差来处理--打开app后,返回h5页面会出现页面变成app下载页面,影响用户体验let delay = setInterval(function () {var d = new Date();var t1 = d.getTime();if (t1 - t0 < 3000 && t1 - t0 > 2000) {window.location.href = "http://api.map.baidu.com/marker?location=" + lat + "," +lng + "&title=" + self.partnerAddress +"&content=景点&output=html&src=webapp.baidu.openAPIdemo";}if (t1 - t0 >= 3000) {clearInterval(delay);}}, 1000);}}} else {this.$toast.showToast('暂不知道该景区位置')}},//区分设备customBrowserVersion() {var u = navigator.userAgent;return {trident: u.indexOf('Trident') > -1, //IE内核presto: u.indexOf('Presto') > -1, //opera内核webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器iPad: u.indexOf('iPad') > -1, //是否iPadwebApp: u.indexOf('Safari') == -1, //是否web应用程序,没有头部与底部weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)qq: u.match(/\sQQ/i) == " qq", //是否QQisBaidu: u.indexOf('baiduboxapp') !== -1, //是否为百度浏览器isqqBrowser: u.indexOf('mqqbrowser') !== -1, //是否为qq浏览器isWxBrowser: u.indexOf('micromessenger') !== -1, //是否为微信浏览器isUc: u.indexOf('ucbrowser') !== -1, //是否为uc浏览器};},

http://www.ppmy.cn/news/633581.html

相关文章

谷歌Play应用商店下架具有内置自行下载APK能力的应用

近日有程序员在V2EX论坛发帖表示自己用开源框架uni-app开发的App被 Google Play下架&#xff0c;而根据这位网友的说法&#xff0c;下架原因疑似是uni-app自带的SDK包含违反Google Play政策的“内置自行下载APK能力”代码及广告相应的代码。 据悉&#xff0c;uni-app是一个使用…

web 打开网页版高德地图指定位置导航

beginNav (address, y, x) {// originX: , // 当前浏览器定位的位置// originY: , // 当前浏览器定位的位置let trimAddress address.replace(/\s/g, "");let src https://uri.amap.com/navigation?from${this.originY},${this.originX},当前位置&to${y},${x}…

一加手机高德位置服务器,高德地图在线导航悬浮窗闪亮一加手机

4月23日下午&#xff0c;一加手机在北京正式发布。作为与CM团队联合推出的机型&#xff0c;在软件上除了其预装的CM11系统之外&#xff0c;高德地图悬浮窗口深度定制功能成为最大亮点。 据了解&#xff0c;此次一加手机与高德地图合作&#xff0c;推出悬浮窗口定制功能&#xf…

java实现高德地图app_入门指南-高德地图手机版 | 高德地图API

Android 端 如果您需要在浏览器中打开高德地图App&#xff0c;例如在H5页面中跳转到高德地图App,或者在本地App中加载的H5页面跳转到高德地图App&#xff0c;需要使用scheme调用&#xff0c;在H5中的链接中加入高德地图的Scheme即可&#xff0c;如(以导航为例)&#xff1a;导航…

车机高德导航Linux版升级,高德地图车机版 最新版本V2.8.2地图数据+软件更新方法...

最近购买了android的车载导航,导航用的是高德地图车机版,原车用的版本是2.0的版本,跟最近的2.8.2的差别有点大,这里就为大家分享一下如果将软件升级到2.8.2,地图也跟进更新到最新版本,方便大家使用。 V2.8.2版本新增功能:数据增量更新 【数据增量更新】V2.8.2版本的数据…

MathType公式批量转换为Word自带公式的VBA实现及error ‘4198‘ 处理

VBA 纯新手&#xff0c;程序可能比较傻&#xff0c;大家将就看。有改进建议&#xff0c;欢迎留言 参考链接&#xff1a; 1、2种办法把MathType公式转换为Word公式 2、一键批量将mathtype公式转换成word自带公式-vba/vbnet_mathtype批量转word自带_一路向前的小Q的博客-CSDN博…

Jupyter Notebook左侧大纲目录设置

在 Jupyter Notebook 中&#xff0c;可以通过安装jupyter_contrib_nbextensions插件来实现在页面左边显示大纲的功能。 1. 安装插件 pip install jupyter_contrib_nbextensions 1.1 如何安装 windows cmd小黑裙窗口&#xff1b; 1.查看目前安装了哪些库 conda list 2. 使用…

500能不能配个玩英雄联盟的电脑?

500元是必须可以配一个英雄联盟主机的&#xff0c;并且预算还有余&#xff0c;但是这个价位下只能选择二手配件&#xff0c;就以我回答你的时间点为例&#xff0c;我帮你500元内配出一台可玩lol的主机。 这个价位下我选择x58平台&#xff0c;在二手平台找到了一套板u内存三件套…