首页 > 如何解决浏览器打开客户端APP的问题?

如何解决浏览器打开客户端APP的问题?

问题背景:

如果用户没有安装客户端,第一次进入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还难啊! >.< )

求一个给力的终极解决方案!

【热门文章】
【热门文章】