V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
frontman
V2EX  ›  Apple

怎么从前端页面直接跳到 app 或者 appstore?

  •  
  •   frontman · 2014-08-05 15:57:51 +08:00 · 5044 次点击
    这是一个创建于 3798 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是做前端的,ios开发的app里的歌曲分享到微信后有个按钮 点击按钮可以直接跳到app 如果没有app直接跳到appstore 我这边应该怎么写?
    10 条回复    2014-08-07 22:28:36 +08:00
    frontman
        1
    frontman  
    OP
       2014-08-05 16:06:09 +08:00
    ??
    NemoAlex
        2
    NemoAlex  
       2014-08-05 16:10:16 +08:00
    老的解决方案是:
    App 可以向系统注册私有协议,你写个链接 <a href="foo://xxx"></> 类似这样的
    JavaScript 绑个点击事件,用户点击以后延迟1秒跳转到 store 页面
    于是如果用户有装应用的话就会跳转到应用,没有装的话1秒以后会去 store
    不过微信的浏览器貌似会拦截去 store 的链接,这个要你自己研究下了
    frontman
        3
    frontman  
    OP
       2014-08-05 16:17:58 +08:00
    @NemoAlex soga 3q
    frontman
        4
    frontman  
    OP
       2014-08-05 17:48:48 +08:00
    额 怎么跳呢
    frontman
        5
    frontman  
    OP
       2014-08-05 18:19:21 +08:00
    查了好久 原因是iso的新版微信阻止在微信内部打开第三方app,所以还是用之前的链接,但是打开的时候需要一些操作 ,这里有个小哥描述的很清楚 http://dearb.me/archive/2013-11-07/ios7-weixin-unsupport-redirect-to-app-store/
    yudun1989
        6
    yudun1989  
       2014-08-05 18:32:32 +08:00
    iframe
    hoogle
        7
    hoogle  
       2014-08-05 21:17:52 +08:00 via iPhone   ❤️ 1
    微信不能 转到Safari用scheme
    siteshen
        8
    siteshen  
       2014-08-06 01:12:57 +08:00
    上面的解决方案对iOS和比较Android手机够用了,我再补充一下网页在weibo客户端(系统Android 4.1.2版,怀疑其他老版本Weibo客户端也有此问题)遇到的坑:

    1. window.location = "intent://story/33195#Intent;package=xxx;scheme=zbd;end;";
    该客户端中,直接跳转过去了,出现的是一个类似404的页面;
    2. 该客户端中的UserAgent和默认浏览器的完全一样,没法判断是在微博客户端里的。

    解决方案,最终检查header时发现refer字段里有m.weibo.cn字样,就用这个方案判断了。
    source = $('body').data('source');
    IS_WECHAT = /micromessenger/i.test(navigator.userAgent);
    IS_WEIBO_SOURCE = source && /weibo/i.test(source);
    IS_WEIBO_UA = /weibo/i.test(navigator.userAgent);
    IS_WEIBO = !IS_WECHAT && (IS_WEIBO_UA || IS_WEIBO_SOURCE);

    // 微信和微博多数“[在浏览器中打开]”显示在“右上角”,然后还设计了个箭头、囧
    if (IS_WEIBO_SOURCE && !IS_WEIBO_UA) {
    $('.font-attention.browser-btn').text('右下角');
    $('.tips-arrow').hide();
    }

    if (IS_WEIBO || IS_WECHAT) {
    $('.browser-tips').show();
    return $('.browser-tips .browser-tips-mask').on('click', function(e) {
    return $('.browser-tips').hide();
    });
    }
    frontman
        9
    frontman  
    OP
       2014-08-07 14:23:23 +08:00
    @siteshen 真心感觉好高端啊
    siteshen
        10
    siteshen  
       2014-08-07 22:28:36 +08:00
    @frontman 总之是个坑就得有人去填。这是我们应用上线之后才发现得,零散的探索了一两天才搞出来的这个方案。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   941 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:26 · PVG 06:26 · LAX 14:26 · JFK 17:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.