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 相关文章推荐
一款纯css3实现的响应式导航
Oct 31 HTML / CSS
总结30个CSS3选择器
Apr 13 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
Sep 15 HTML / CSS
HTML5 Geolocation API的正确使用方法
Dec 04 HTML / CSS
HTML5 embed 标签使用方法介绍
Aug 13 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
Jun 23 HTML / CSS
使用html5 canvas 画时钟代码实例分享
Nov 11 HTML / CSS
使用HTML5 Canvas绘制圆角矩形及相关的一些应用举例
Mar 22 HTML / CSS
详解html5 postMessage解决跨域通信的问题
Aug 17 HTML / CSS
HTML5拖拽文件上传的示例代码
Mar 04 HTML / CSS
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
Apr 22 HTML / CSS
html实现弹窗的实例
Jun 09 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
php 函数使用方法与函数定义方法
2010/05/09 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
js 操作css实现代码
2009/06/11 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
2015/05/11 Javascript
javascript中undefined与null的区别
2015/08/16 Javascript
mui上拉加载功能实例详解
2017/04/13 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
python实现随机梯度下降法
2020/03/24 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
使用pandas读取文件的实现
2019/07/31 Python
python实现简易学生信息管理系统
2020/04/05 Python
python爬虫要用到的库总结
2020/07/28 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
一套SQL笔试题
2016/08/14 面试题
婚礼主持结束词
2014/03/13 职场文书
体育比赛口号
2014/06/09 职场文书
写得不错的求职信范文
2014/07/11 职场文书
课程设计的心得体会
2014/09/03 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
领导参观欢迎词
2015/01/26 职场文书
教师岗位说明书
2015/09/30 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
python使用glob检索文件的操作
2021/05/20 Python
python 中的@运算符使用
2021/05/26 Python