很多h5页面都有立即打开/下载的按钮,比如网易新闻
http://3g.163.com/ntes/special/00340EPA/wapSpecialModule.html?sid=S1465956142051&spst=2&spss=newsapp&spsf=wx&spsw=1
比如今日头条
http://toutiao.com/i6298416478102225409/?tt_from=weixin&utm_campaign=client_share&from=singlemessage&app=news_article&utm_source=weixin&isappinstalled=1&iid=4639652216&utm_medium=toutiao_ios&wxshare_count=2&pbid=19604438942
在移动端打开都有这样一个按钮,点击之后,如果手机里安装了该app,则直接打开,如果没有安装,会跳转去下载。请问这个逻辑是如何实现的,据我所知,js无法判断手机上是否安装了app。
求有经验的大神解惑!
谢谢大家的积极回答,现在遇到的坑是,在iphone的safri中,点击会出现弹窗提示,询问我是否打开app或者告诉我链接无效,因为这个提示的原因导致用setTimeout的逻辑会出现问题,因此不知道各位有没有什么办法能够阻止safri的弹窗?
var checkApp = function () {
var ua = navigator.userAgent;
var isiOS = ua.match(/iPhone|iPod|iPad/i);
var isAndroid = ua.match(/Android/i);
var isPC = !isiOS && !isAndroid;
if (isiOS) {
setTimeout(function () {
window.location = 'https://www.pgyer.com/sss';
}, 3000);
window.location = 'AppTest://www.apptest.com';
} else if (isAndroid) {
setTimeout(function () {
window.location = 'https://www.pgyer.com/sss';
}, 3000);
window.location = 'AppTest://www.apptest.com';
} else {
alert('Please open this link via your mobile device instead of computer.');
}
}
其中'AppTest://www.apptest.com'要在你app提前定义好,具体怎么定义我不太清楚了,这是app开发给我的