您现在的位置是:网站首页> 编程资料编程资料
HTML5页面中尝试调起APP功能浅谈html5与APP混合开发遇到的问题总结Html5 APP中监听返回事件处理的方法示例使用html5新特性轻松监听任何App自带返回键的示例HTML5 Plus 实现手机APP拍照或相册选择图片上传功能HTML5打开本地app应用的方法html5调用app分享功能示例(WebViewJavascriptBridge)
2023-10-13
399人已围观
简介 这篇文章主要介绍了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使用canvas实现弹幕功能示例基于Canvas+Vue的弹幕组件的实现前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)HTML使用canvas实现弹幕功能HTML5 canvas实现的静态循环滚动播放弹幕
- 基于HTML5+CSS3实现简单的时钟效果js+css3实现扁平化APP图标时钟动画效果源码CSS3+js实现简单的时钟特效一款很酷的CSS3翻页时钟动画特效源码jquery+CSS3实现的数字时钟效果源码基于jQuery/CSS3实现的线性时钟插件源码CSS3实现的圆盘时钟效果动画源码jQuery+CSS3实现的一款超酷数字时钟翻页动画CSS3制作360度旋转时钟表不用任何图片
- HTML5本地存储和本地数据库实例详解HTML5离线应用与客户端存储的实现详解前端HTML5几种存储方式的总结 html5本地存储 localStorage操作使用详解HTML5 Web 存储详解HTML5中的网络存储实现方式
- 全民英雄死亡先知和魔女全面解析 死亡先知和魔女哪个好用_手机游戏_游戏攻略_
- 全民英雄刷小小紫卡百分百成功的方法解析_手机游戏_游戏攻略_
- 全民英雄最强紫卡英雄排行榜前五名英雄解析_手机游戏_游戏攻略_
- 全民英雄最没有培养价值的紫卡英雄有哪些及英雄解析_手机游戏_游戏攻略_
- 全民英雄修复锤获得方法攻略 全民英雄修复锤怎么得_手机游戏_游戏攻略_
- 全民英雄普通副本卡牌掉落一览表 普通关卡英雄卡牌掉落大全_手机游戏_游戏攻略_
- 全民英雄十字路口三星通关攻略心得 第九个副本十字路口怎么通关_手机游戏_游戏攻略_
