H5网页唤醒app,判断app安装
- 在阅读本文之前你首先应该对js有基本对掌握,并且对Scheme,intent有一定的理解。更多的是代码
上午给朋友做了一个产品引导页,但是需要判断ios系统的TestFlight是否安装,进行了google一下发现了callapp-lib库
很有效的解决了这个问题,但是并不是很完美,我也没有找到很完美的解决这个问题,包括我在本文所说的,只是一种很不入流的方式,但是还是有效的,
兼容情况就不说了,不考虑~,主要是就是唤醒你需要的软件。
- callapp-lib这里利用了别人的库,可以省略部分代码,`callapp-lib`可以直接唤醒app,以及唤醒失败的`callback`,但是你得传入Scheme。
- `callapp-lib`库可能有一点问题,我也没有理解透彻,它并不给你提供唤醒成功`callback`的功能,所以需要我们自己补足。
文档:callapp-lib
- import CallApp from 'callapp-lib'
- const option = {
- scheme: {
- protocol: 'itms-beta',
- },
- outChain: {
- protocol: 'itms-beta',
- path: '',
- },
- appstore: 'http://www.apple.com',
- yingyongbao: 'http://www.zhihu.com',
- fallback: 'https://www.baidu.com',
- timeout: 3000,
- };
- const lib = new CallApp(option);
- const callButton = document.querySelector('#call-button');
- callButton.addEventListener('click', () => {
- vm.is_show = 1
- this.$toast.loading({
- mask: true,
- message: '加载中...'
- });
- lib.open({
- path: '/text',
- callback: function () {
- vm.is_show = 0
- self.$toast.fail('打开TestFlight失败,请先下载支持软件TestFlight');
- return false
- },
- });
- });
- 检测网页是否被切到后台运行,并监听该事件
`is_show` 是为了阻止重复加载
APP 如果被唤起的话,页面就会进入后台运行,会触发页面的 visibilitychange 事件。如果触发了,则表明页面被成功唤起,支持callback,如果失败的话就会触发前面`callapp-lib`我们传入的失败callback
- var hidden, state, visibilityChange;
- if (typeof document.hidden !== "undefined") {
- hidden = "hidden";
- visibilityChange = "visibilitychange";
- state = "visibilityState";
- } else if (typeof document.mozHidden !== "undefined") {
- hidden = "mozHidden";
- visibilityChange = "mozvisibilitychange";
- state = "mozVisibilityState";
- } else if (typeof document.msHidden !== "undefined") {
- hidden = "msHidden";
- visibilityChange = "msvisibilitychange";
- state = "msVisibilityState";
- } else if (typeof document.webkitHidden !== "undefined") {
- hidden = "webkitHidden";
- visibilityChange = "webkitvisibilitychange";
- state = "webkitVisibilityState";
- }
- document.addEventListener(visibilityChange, function () {
- // eslint-disable-next-line
- //这里判断不要重复下载
- if (vm.is_show == 1) {
- vm.is_show = 0
- alert('正在下载');
- location.reload()
- }
- }, false);
- 原创不易,转载请附上原文出处链接,谢谢
原文链接:https://lihengc.github.io/2019/09/24/H5%E7%BD%91%E9%A1%B5%E5%94%A4%E9%86%92app-%E5%88%A4%E6%96%ADapp%E5%AE%89%E8%A3%85/
H5网页唤醒app,判断app安装的更多相关文章
- h5网页跳转到app,若未安装app,则跳转app下载页面
if(isAndroid){ android(); function android(){ var ifr = document.createElement("iframe"); ...
- H5网页应用打包安卓App (全网最详细教程)
img { box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important } .red { color: rgba(255, 0, 0, 1) } ...
- 12、xamarin form中实现H5 网页唤醒微信支付的方法
在微信的支付中有种支付叫微信H5支付.方便用户在网页中轻松唤起微信进行支付. 当然微信不推荐大家使用这样的方式唤起微信支付.建议app还是使用正常的微信支付sdk即可 服务端与其他的建议参考微信支付官 ...
- web页面打开本地app(判断是否安装)
在应用宝中有APP申请链接: //是否可以打开App不可以跳则到下载页 $(".downNow button").on("click",function(){ ...
- 关于APP,原生和H5开发技术的争论 APP开发技术选型判断依据
关于APP,原生和H5开发技术的争论 App的开发技术,目前流行的两种方式,原生和Html5.原生分了安卓平台和ios平台(还有小众的黑莓.死去的塞班就不说了),H5就是Html5. 目前争论不休的问 ...
- 点击页面判断是否安装app并打开,否则跳转app store的方法
常常有这样的场景,咱们开发出来的APP需要进行推广,比如在页面顶部来一张大Banner图片,亦或一张二维码.但往往我们都是直接给推广图片加了一个下载链接(App Store中的).所以咱们来模拟一下用 ...
- 在web浏览器中判断app是否安装并直接打开
最近公司App产品在运营推广上有一个需求,就是要求可以让用户在访问我们的推广网页时,就可以判断出这个用户手机上是否安装了我们的App,如果安装了则可以直接在网页上打开,否则就引导用户前往下载.从而形成 ...
- 【JS】点击页面判断是否安装app并打开,否则跳转下载的方法
应用场景 App产品在运营推广上有一个需求,就是要求可以让用户在访问我们的推广网页时,就可以判断出这个用户手机上是否安装了我们的App,如果安装了则可以直接在网页上打开,否则就引导用户前往下载.从而形 ...
- h5 调起app 如果没安装就跳转下载
<!doctype html> <html> <head> <title></title> <meta charset="u ...
随机推荐
- redis之哨兵集群
一.主从复制背景问题 Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用: 一旦主节点宕机,从节点作为主节点的备份可以随时顶上来. 扩展主节点的读能力,分担主节点读压力. 但是问题是: ...
- MONGODB 数据库回复备份
1.导出工具:mongoexport 1.概念: mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指 ...
- java web课程管理系统开发实例(从数据库连接到代码)
以下是几个简单知识: JavaBean:用于传递数据,拥有与数据相关的逻辑处理 JSP:从Model接收数据并生成HTML Servlet:接收HTTP请求并控制Model和View jdbc:用于配 ...
- 2019巅峰极客CTF-web1(LOL英雄联盟)
今晚有空 以后随缘写博客了 好好沉淀 web1当天做出的队伍很少 其实不难 折腾到最后就差一步 可惜 0x01 读取文件 截图没留了 只留了代码部分. 有个页面 有上传和下载功能 起初 ...
- Java并发指南13:Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析 转自https://www.javadoop.com/post/hashmap#toc7 部分内容转自 http: ...
- RGB-D(深度图像) & 图像深度
RGB-D(深度图像) 深度图像 = 普通的RGB三通道彩色图像 + Depth Map 在3D计算机图形中,Depth Map(深度图)是包含与视点的场景对象的表面的距离有关的信息的图像或图 ...
- 移动端——页面点击( touchend -> click)
手机端页面好多要注意的,点击事件就是其中一个: 在手机端页面中使用 click,安卓手机能正常实现点击效果,可是苹果手机不能点击:用 touchend 代替 click,苹果手机中能点击,但是可能出现 ...
- /proc/sys/net/ipv4/ip_conntrack_max
Things to know (best practices and “issues”) READ IT !!! — uWSGI 2.0 documentationhttps://uwsgi-docs ...
- kotlin嵌套类
就是类中定义类 package loaderman.demo class Outer { var name: String = "name" inner class inner { ...
- Markdown 图片的简单处理
0. 前言 最近写 md 文章的时候发现,在 markdown 里插入一些很长的图片的时候,会显得很不好看,于是去查了一下如何实现 markdown 里图片的并排显示,参考了各个博客内的内容和 mar ...