Html5内唤醒百度、高德APP的实现示例


Posted in HTML / CSS onMay 20, 2019

前几天,联合黑卡反馈了一个需求,需要在H5中打开百度APP或者是高德APP,于是我在网上查了相关文档,下面放上链接: 1.高德地图 2.百度地图

具体思路就是点击选择地图的时候,先去请求APP链接,800毫秒后无响应,再跳转至H5链接。这样的做法有一点不好就是不管跳不跳APP,都会跳到H5的链接。有好的想法可以评论一下。

下面放相关代码:
 

function  ToggleAppAndH5( AppUrl , AppCallback = () => {}){
             // 先走APP
            const ifr = document.createElement('iframe');
                ifr.src = AppUrl;
                ifr.style.display = 'none';
                document.body.appendChild(ifr);
                setTimeout(function(){
                    document.body.removeChild(ifr);
                }, 3000);
            
                  // 800毫秒后调用H5链接
                let timer = setTimeout(function () {
                        clearTimeout(timer);
                        AppCallback();
                }, 800);
        
                window.onblur = function () {
                    clearInterval(timer);
                };
         }

        function Callback(){
           // 这里放相关H5链接
           if (mapType === 'baidu') {
              frameDom.attr('src', "http://api.map.baidu.com/direction?origin=latlng:"+  curLat +","+ curLng +"|name:"+ currAddr +"&destination=latlng:"+  elat +","+ elng +"|name:"+ eaddr +"®ion="+ cityName +"&mode=driving&output=html&src=com.youbei.chefu");
           } else if (mapType === 'amap') {
              frameDom.attr('src', "https://ditu.amap.com/dir?type=car&from[lnglat]="+ curLng +","+ curLat +"&from[name]="+currAddr+"&to[lnglat]="+ elng +","+ elat +"&to[name]="+eaddr+"&src=com.youbei.chefu");
           }
         }

         const u = navigator.userAgent;
         const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

1. 高德

// 苹果和安卓头部不一样
   let proto = isiOS ? 'iosamap://path' : 'amapuri://route/plan'  ;

   const AppUrl = proto + "?t= 0&slat="+curLat+"&slon="+curLng+"&sname="+currAddr+"&dlat="+elat+"&dlon="+elng+"&dname="+eaddr+"&src=xxx";

   ToggleAppAndH5(AppUrl,Callback)

2.百度

// 苹果和安卓头部不一样
   let proto = isiOS ? 'baidumap://'  : 'bdapp://' 

   const AppUrl = proto +  "map/direction?region="+cityName+"&origin=latlng:"+ curLat+","+ curLng +"|name:"+ currAddr +"&destination=latlng:"+ elat +","+ elng +"|name:"+ eaddr +"&coord_type=bd09ll&mode=driving&src=com.youbei.chefu";
   
   ToggleAppAndH5(AppUrl, Callback)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
35款精致的 CSS3 和 HTML5 网页模板 推荐
Aug 03 HTML / CSS
css3实现垂直下拉动画菜单示例
Apr 22 HTML / CSS
HTML5 Web 存储详解
Sep 16 HTML / CSS
分享一个页面平滑滚动小技巧(推荐)
Oct 23 HTML / CSS
html5的新增的标签和废除的标签简要概述
Feb 20 HTML / CSS
详解HTML5中ol标签的用法
Sep 08 HTML / CSS
HTML5+css3:3D旋转木马效果相册
Jan 03 HTML / CSS
h5实现获取用户地理定位的实例代码
Jul 17 HTML / CSS
canvas探照灯效果的示例代码
Nov 30 HTML / CSS
HTML5 FileReader对象的具体使用方法
May 22 HTML / CSS
position:sticky 粘性定位的几种巧妙应用详解
Apr 24 HTML / CSS
clear 万能清除浮动(clearfix:after)
May 21 HTML / CSS
socket.io 和canvas 实现的共享画板功能
May 22 #HTML / CSS
Canvas 文字碰撞检测并抽稀的方法
May 27 #HTML / CSS
利用canvas实现图片下载功能来实现浏览器兼容问题
May 31 #HTML / CSS
HTML5印章绘制电子签章图片(中文英文椭圆章、中文英文椭圆印章)
Jun 03 #HTML / CSS
详解利用canvas实现环形进度条的方法
Jun 12 #HTML / CSS
Html5 实现微信分享及自定义内容的流程
Aug 20 #HTML / CSS
前端canvas动画如何转成mp4视频的方法
Jun 17 #HTML / CSS
You might like
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python实现保存网页到本地示例
2014/03/16 Python
Python实现端口复用实例代码
2014/07/03 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
Python socket服务常用操作代码实例
2020/06/22 Python
python字典的值可以修改吗
2020/06/29 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
StubHub德国:购买和出售门票
2017/09/06 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
大专生自我评价
2014/01/28 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
结婚老公保证书
2015/02/26 职场文书
商务信函英语问候语
2015/11/10 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers