如果用户没有安装客户端,第一次进入H5页面,就直接下载客户端或者到跳转到APP Store;如果用户手机安装了客户端,就直接打开响应的客户端,不再继续下载或者到下载页面;
前端不能判断用户是否安装了客户端!
如果用户有安装客户端,会出现打开客户端成功后,浏览器那边依旧在下载客户端,非常损伤用户体验、浪费用户的流量。(IOS会提示“在APP Store中打开链接吗?”的Confirm提示框)
var appInfo = {
iosUrl: "", //打开IOS客户端链接
androidUrl: "", //打开ANdroid客户端的链接
downloadUrl: "" //下载客户端或者去App Store的链接
};
var t1 = new Date().getTime();
iframe2open();
jump2download();
//利用iframe打开客户端
function iframe2open(){
var src = $.os.ios ? appInfo.iosUrl : appInfo.androidUrl,
iframe = document.createElement("iframe");
iframe.src = src;
iframe.style.display = "none";
document.body.appendChild(iframe);
}
//跳转下载页面
function jump2download(){
var _timer = null;
clearTimeout(_timer);
_timer = setTimeout(function(){
var t2 = new Date().getTime();
if (t2 - t1 <= 800) {
window.location = appInfo.downloadUrl;
}
},400);
}
延迟加时间间隔的判断,对有些浏览器有作用,但是解决不了根本问题(处理好手机兼容性比PC还难啊! >.< )