html5 - ios9下在浏览器中通过scheme打开app的问题
迷茫
迷茫 2017-04-18 09:15:22
0
4
660

解决方案

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)

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

répondre à tous(4)
阿神

Nous venons d'utiliser la solution deepshare maintenant, et nous devons profiter des nouvelles fonctionnalités du lien universel sur ios9

PHPzhong

Implémentation 3G de NetEase 163, mais je ne sais pas comment faire

伊谢尔伦

J'ai du mal depuis deux jours et je n'arrive toujours pas à le faire... L'affiche a-t-elle réussi maintenant, la solution de Taobao n'est-elle pas parfaite non plus

巴扎黑

3g.163 utilise le lien universel sur ISO, et les délais sur Android.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal