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样式linear-gradient的使用实例
Jan 16 HTML / CSS
用CSS禁用输入法(CSS3 UI规范)实例解析
Dec 04 HTML / CSS
image-set实现Retina屏幕下图片显示详细介绍
Dec 24 HTML / CSS
解决CSS3 transition-delay 属性默认值0不带单位失效的问题
Oct 29 HTML / CSS
HTML5 Video/Audio播放本地文件示例介绍
Nov 18 HTML / CSS
HTML5样式控制示例代码
Nov 27 HTML / CSS
HTML5学习笔记之History API
Feb 26 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
Apr 24 HTML / CSS
html5调用app分享功能示例(WebViewJavascriptBridge)
Mar 21 HTML / CSS
h5移动端调用支付宝、微信支付的实现
Jun 08 HTML / CSS
css3 文字断裂效果
Apr 22 HTML / CSS
CSS使用SVG实现动态分布的圆环发散路径动画
Dec 24 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&java(三)
2006/10/09 PHP
用PHP与XML联手进行网站编程代码实例
2008/07/10 PHP
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
js中AppendChild与insertBefore的用法详细解析
2013/12/16 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
在keras中实现查看其训练loss值
2020/06/16 Python
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
新东网科技Java笔试题
2012/07/13 面试题
迟到检讨书5000字
2014/01/31 职场文书
党员四风剖析材料
2014/08/27 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
商务宴会祝酒词
2015/08/11 职场文书
Python pandas求方差和标准差的方法实例
2021/08/04 Python
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android