• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5页面调起APP功能的方法试验

HTML5页面调起APP功能的方法试验

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,h5,试验等相关知识,匿名希望在学习及工作中可以帮助到您
这篇文章主要介绍了HTML5页面中尝试调起APP功能,需要的朋友可以参考下

在市面上经常见到这种功能现如今应该非常普遍了,淘宝H5,知乎H5等等。。。

点击后会调起APP或者打开下载页面或者直接进行下载。

但是我这里发现知乎的这个功能有点不一样

他的逻辑是先提示我是否打开手机中的知乎APP(浏览器的机制询问用户操作许可),然后接着又弹出下载的提示。

解决方案URL scheme

URL scheme的方式在IOS和安卓都支持,兼容性较好。

优先使用iframe的方式

伪代码如下:

const iframe = document.createElement('iframe');
iframe.src = 'URL scheme'; // URL scheme的方式跳转
iframe.style.display = 'none';
document.body.appendChild(iframe);

这时候如果在一切环境支持的情况下,就会唤醒APP了。

但是这是理想情况下,更多的是要做兼容处理这快逻辑。

有些系统会拦截iframe的src(这只是造成唤醒APP失败的其中一种原因),因为这个src属性是一个法外hacker,很多漏洞都是利用他造成的。

所以这时候就要判断调APP失败的情况了。

伪代码如下:

const timer = 1000;
setTimeout(function() {
        // 执行成功后移除iframe
    document.body.removeChild(iframe);
    //setTimeout小于2000通常认为是唤起APP失败 
    if (Date.now() - last < 2000) {
            // 执行失败函数
            // 这里需要考虑一下之前知乎遇到的那个问题(浏览器询问导致时间小于2S)
    } else {
           //  执行成功函数
        }
}, timer);

理解:

  • 如果唤起成功,H5页面会被切换到后台,计时器就会延迟。即使用户再从app切换到H5页面,这个时间差必然也是大于2S的。

  • 如果唤起失败,定时器会准时执行(即使会有100ms的延迟也是够了),这时候必然是小于2S的。

在iframe被拦截的情况下,我们可以使用window.location.href = URL scheme来做兼容。

以上就是HTML5页面调起APP功能的方法试验的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2017-08-06HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
  • 2018-12-03同事开发webapp(图片应用)遇到一些问题,如兼容uc浏览器,那么webapp开发在业内有没有比较成功的例子?
  • 2018-12-03HTML5实战与剖析之媒体元素(5、音频实例)
  • 2018-12-03Html5大文件断点续传实现方法_html5教程技巧
  • 2018-12-03html5的自定义data-*属性与jquery的data()方法的使用_html5教程技巧
  • 2018-12-03HTML5 预加载让页面得以快速呈现_html5教程技巧
  • 2018-12-03HTML5 Canvas API制作简单的猜字游戏
  • 2017-08-06html5 touch事件实现触屏页面上下滑动(二)
  • 2018-12-03HTML5超炫酷粒子效果的进度条图文代码详细介绍
  • 2018-12-03如何让ie浏览器支持html5标签?

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • html5实现canvas阴影效果示例_html5教程技巧
    • Web开发和设计上容易被忽视的8个错误
    • Windows 8的出现是不是意味着,客户端用前端脚本语言,逻辑和后面的服务用C#,所以C++这种就会 慢慢消失在一般的开发过程中?
    • 使用JavaScript和canvas实现图片的裁剪
    • 分享一个用h5制作的网页版扫雷游戏实例代码
    • 克服 iOS HTML5 音频的局限
    • html5 css3网站菜单实现代码
    • 中期来看,如果基于 HTML5 的应用和游戏大量涌现,iOS 相对于 Android 的应用优势将会大幅削弱?苹果有何应对措施?
    • canvas游戏开发学习之三:绘制复杂形状
    • 基于HTML5 audio元素播放声音jQuery小插件_html5教程技巧

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有