跳转ios的商店页,会遇到两个问题。
1、判断是安卓/苹果,苹果需要a标签来进行跳转从而打开APP。
2、不管iOS还是Android,浏览器都无法知道时候安装了目标APP。
需要注意的是:
ios中是不能通过window.location.href来跳转的。浏览器会报非法地址。
because the scheme does not have a registered handler.
逻辑:
我们可以分为两步来进行,首先判断是否有该目标APP,有的话就直接打开;没有安装目标APP我们可以跳转至商店页。
通过:document.webkitHidden判断是否是visibilitychange 窗口不可见
详细代码:
if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {
var loadDateTime = new Date();
//ios9可以通过配置一个已有的链接打开app,需要给服务器上传一个校验文件
// window.location.href = 'https://******';
$('body').append("<a id='to_ios_app' href='ios跳转app链接'></a>")
var obj = document.getElementById('to_ios_app');
obj.click();
//目前还有一个问题需要用iframe来解决,可自行查阅iframe。
setTimeout(function () {
// window.alert(document.webkitHidden)
// window.location = 'https://itunes.apple.com/app/id1271022527?mt=8'
//判断是不是可见
if (typeof document.webkitHidden === 'undefined') {
$('body').append("<a id='to_ios_market' href='https:*****'></a>")
var obj = document.getElementById('to_ios_market');
obj.click();
}
}, 600);
}