现在的处理是:
点击后,500ms没成功就跳转到下载页面。
在ios下,点击后,直接打开了App;但页面在继续执行,不管是否安装了App都会跳转到下载页面。
需求是,如果成功打开App,就不能跳转到下载页面。
现在的思路是通过判断页面是否可见或者失去焦点,来判断是否打开了App,故做了如下尝试:
判断document.hasFocus(),但其返回值一直为true。
监听visibilitychange事件;visibilitychange在安卓下可以,在ios下只有在浏览器内切换页面会触发,点击home键回到桌面不触发。
监听pageshow事件,貌似只有重载页面时才会触发,不能满足需求。
iOS下用 Universal Links.
什么setTimeout visibilityChange 都是 hack 的做法,iOS9+ 还有 universal links这种官方的解决方案,安卓上千奇百怪的浏览器就惨了,若是调起了自家 App 仍然跳转到下载页面,那就跳吧,能怎样,与其过度扣这种前端没法解决只能 hack 的细节,不如把产品做好,用户安装了你家 App,他要用 App 自己自然会用。