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 相关文章推荐
浅析rem和em和px vh vw和% 移动端长度单位
Apr 28 HTML / CSS
使用css3做0.5px的细线的示例代码
Jan 18 HTML / CSS
纯css3实现思维导图样式示例
Nov 01 HTML / CSS
css3弹性盒子flex实现三栏布局的实现
Nov 12 HTML / CSS
5个你不知道的HTML5的接口介绍
Aug 07 HTML / CSS
检测浏览器对HTML5和CSS3支持度的方法
Jun 25 HTML / CSS
HTML5实现文件断点续传的方法
Jan 04 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
Feb 13 HTML / CSS
canvas生成带二维码海报的踩坑记录
Sep 11 HTML / CSS
AmazeUI图片轮播效果的示例代码
Aug 20 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
Aug 21 HTML / CSS
css3手动实现pc端横向滚动
Jun 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
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
PDO::inTransaction讲解
2019/01/28 PHP
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
Python实现数通设备端口使用情况监控实例
2015/07/15 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
对Tensorflow中的变量初始化函数详解
2018/07/27 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
python将图片转base64,实现前端显示
2020/01/09 Python
python如何变换环境
2020/07/21 Python
python接口自动化框架实战
2020/12/23 Python
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
英语专业毕业生自我鉴定
2013/11/09 职场文书
统计岗位职责
2014/02/21 职场文书
活动总结报告范文
2014/05/04 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python