js唤醒app完全实现

拉起app的原理就是js和原生统一好一个地址,例如(weixin://)。然后浏览器发起请求,如果app安装了则会拦截这个请求并且打开。

js这边稍微麻烦一些。如果只拉起app比较简单,直接通过a连接或者window.location.href=“**”即可。不过这里有个问题,就是有些手机在未安装app的时候会识别我们之前定的那个协议尝试打开这个网页,当然会报找不到网页。但如果使用iframe拉起app在ios9以上不支持。这里我们对ios拉起app做一个总结:

一、iframe:当没安装时safari不会提示错误弹框,但iframe只适合ios9以下;

二、window.location.href: 兼容性良好,但在没安装app的情况下会在safari中弹框提示网址无效;

三、universal Link:在ios9及以上生效。

var ua = window.navigator.userAgent;
window.device.isIOS= !!ua.match(/(iPhone|iPod|iPad);?/i);
window.device.isSafari = window.device.isIOS && d.match(/Version\/([\d.]+)([^S](Safari)|[^M]*(Mobile)[^S]*(Safari))/)
;
var o = navigator.userAgent.match(/OS\s([\d]+)/) , edition = o ? parseInt(o[1], 10) : 0; edition >= 9 ? window.device.isSafari || (window.location.href = iosUrl) : this.wakeupApp(iosUrl);

 

综上如果页面中有拉起app的按钮,最好的实现方式是链接跨域指向另一个域名下的下载页,universal Link拦截拉起,如果没安装则到达下载页。

posted @ 2019-05-06 10:19  破晓儿  阅读(5390)  评论(0编辑  收藏  举报