ios9下在浏览器中通过scheme打开app的问题
ios9系统下,safari下通过iframe(scheme)的方式跳app,无法打开app,通过
location.href=scheme
的方式倒是可以,不过在没有安装app时,这种方式可能会直接跳转到一个错误页面(无法打开url之类)。另外,ios9下有一个新问题:
由于要考虑用户没有安装app的情况,所以当用户没有安装时(通过计时器判断)会跳转到app store,在ios9下,当跳转app时,会弹出一个弹框,让用户选择是否跳转,此时还在当前页,setTimeout中的代码会继续执行,导致用户还没选择,就已经跳到app store。
location.href = scheme;
setTimeout(function(){
// 未唤醒客户端
var hidden = document.hidden || document.webkitHidden;
if (!hidden &&
(new Date().getTime() - openTime < 600)) {
window.location.href = downloadUrl;
}
}, 500);
那么,问题来了
-
如何保证在用户没有选择是否跳转应用之前不执行setTimeout中的代码
-
采用location的方式,可能会遇到跳错误页面的情况(暂时没有真机测试),有什么解决方案么?
相关问题:
http://stackoverflow.com/questions/31891777/ios-9-safari-iframe-src-with-custom-url-scheme-not-working
http://stackoverflow.com/questions/32689483/ios9-try-to-open-app-via-scheme-if-possible-or-redirect-to-app-store-otherwise
兼容 iOS 9 Safari 的应用跳转方案探索 (感觉有点麻烦,而且未必work)
坂上智代
9 years, 4 months ago