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 相关文章推荐
CSS实现定位元素居中的方法
Jun 23 HTML / CSS
HTML5如何实现元素拖拽
Mar 11 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
Aug 26 HTML / CSS
video结合canvas实现视频在线截图功能
Jun 25 HTML / CSS
html5 canvas fillRect坐标和大小的问题解决方法
Mar 26 HTML / CSS
分享29个基于Bootstrap的HTML5响应式网页设计模板
Nov 19 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
May 15 HTML / CSS
HTML5 新标签全部总汇(推荐)
Jun 13 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
Jan 09 HTML / CSS
HTML5无刷新改变当前url的代码
Mar 15 HTML / CSS
HTML5图片层叠的实现示例
Jul 07 HTML / CSS
AmazeUI 导航条的实现示例
Aug 14 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中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
实现python版本的按任意键继续/退出
2016/09/26 Python
Python做文本按行去重的实现方法
2016/10/19 Python
Python简单生成随机数的方法示例
2018/03/31 Python
使用python3实现操作串口详解
2019/01/01 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
python实现栅栏加解密 支持密钥加密
2019/03/20 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
给幼儿园老师的表扬信
2014/01/19 职场文书
房地产财务管理制度
2014/02/02 职场文书
财务管理专业求职信
2014/06/11 职场文书
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript