ios9下在浏览器中通过scheme打开app的问题

发布于 2022-09-02 23:34:57 字数 1945 浏览 18 评论 0

解决方案

ios9+ 用 universal link,ios9 以下还是用原来的schema。

另外注意universal link的一个特殊表现:http://stackoverflow.com/ques...

问题描述

ios9系统下,safari下通过iframe(schema)的方式跳app,无法打开app,通过location.href=scheme的方式倒是可以,不过在没有安装app时,这种方式可能会直接跳转到一个错误页面(无法打开url之类)。另外,ios9下有一个新问题:

由于要考虑用户没有安装app的情况,所以当用户没有安装时(通过计时器判断)会跳转到app store,在ios9下,当跳转app时,会弹出一个弹框,让用户选择是否跳转,此时还在当前页,setTimeout中的代码会继续执行,导致用户还没选择,就已经跳到app store。

location.href = schema;
setTimeout(function(){
    // 未唤醒客户端
    var hidden = document.hidden || document.webkitHidden;
    if (!hidden && 
        (new Date().getTime() - openTime < 600)) {
        window.location.href = downloadUrl;
    }
}, 500);

那么,问题来了

  1. 如何保证在用户没有选择是否跳转应用之前不执行setTimeout中的代码

  2. 采用location的方式,可能会遇到跳错误页面的情况(暂时没有真机测试),有什么解决方案么?

相关问题:

http://stackoverflow.com/ques...

http://stackoverflow.com/ques...

兼容 iOS 9 Safari 的应用跳转方案探索 (感觉有点麻烦,而且未必work)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

你没皮卡萌 2022-09-09 23:34:57

我们现在才用了deepshare的方案,ios9上要利用universal link的新特性

故事与诗 2022-09-09 23:34:57

网易163的3g实现,但不知道如何做的

深府石板幽径 2022-09-09 23:34:57

我折腾了两天也没搞定... 楼主现在搞定了吗 ? 淘宝的解决办法也不是完美的

帅的被狗咬 2022-09-09 23:34:57

3g.163采用的是iso上universal link,安卓上延迟等待。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文