V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gogosun
V2EX  ›  问与答

一个奇怪的微信朋友圈分享链接问题

  •  
  •   gogosun · 2016-05-27 16:34:42 +08:00 via iPhone · 3479 次点击
    这是一个创建于 3104 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,打开一个在微信朋友圈分享的网页后,点击右上角的菜单选择复制链接通常复制出来的链接后面会带一个小尾巴,应该是微信强制加上的吧?
    小尾巴:?from=timeline&isappinstalled=
    复制出来是这种效果: http://www.baidu.com/g20160527125652552884094/g20160508200004340421368/AAABVRU3URsAAAABMQAAADE.html?from=timeline&isappinstalled=

    但是今天我发现一个神奇的网页,分享到朋友圈后,再复制这个链接不带小尾巴,复制出来是下面这种效果:
    http://www.baidu.com/g20160527125652552884094/g20160508200004340421368/AAABVRU3URsAAAABMQAAADE.html
    大神们分析下他是怎么做到的?看起来微信没强制加上尾巴。
    15 条回复    2016-05-29 00:20:40 +08:00
    justjavac
        1
    justjavac  
       2016-05-27 19:07:26 +08:00 via Android
    第一种是通过微信 SDK 分享的,第二种是直接链接分享。

    尾巴不是微信 APP 加的,而是微信 SDK 加的。
    gogosun
        2
    gogosun  
    OP
       2016-05-27 19:57:32 +08:00
    @justjavac 你好,是这样的,比如我在百度浏览器打开了 a 网页,然后分享到朋友圈,然后从朋友圈打开这个 a 网页,再复制链接,结果还是和浏览器里面的地址一样没有尾巴: http://www.a.com/a.html 效果。
    但是如果在浏览器打开 b 网页,同样操作复制出来的链接却带尾巴。 http://www.b.com/b.html??from=timeline&isappinstalled=

    同样的分享方式,结果咋不同呢, a 网页如何实现复制出来的链接不带尾巴?

    谢谢!
    JiShuTui
        3
    JiShuTui  
       2016-05-27 20:24:21 +08:00 via Android
    如果 a 是你能控制的页面,那么可以检测一下是否有尾巴,有就跳转到无尾巴
    gogosun
        4
    gogosun  
    OP
       2016-05-27 20:54:47 +08:00
    @JiShuTui 在什么环节检测?被分享到朋友圈后检测么?如何知道页面已经被分享了?
    JiShuTui
        5
    JiShuTui  
       2016-05-27 21:13:38 +08:00
    @gogosun 前端或者后端都可以判断,在被打开是判断,通过 ua 可以判断是否是微信内打开,同时判断尾巴
    justjavac
        6
    justjavac  
       2016-05-27 21:38:10 +08:00 via Android
    @gogosun 用的百毒浏览器自带的分享功能?
    gogosun
        7
    gogosun  
    OP
       2016-05-27 21:53:47 +08:00
    @JiShuTui 就是朋友圈内的网页被打开后判断么?那个尾巴是在什么环节加上的呢?
    gogosun
        8
    gogosun  
    OP
       2016-05-27 21:54:00 +08:00
    @justjavac 是的,百度浏览器
    justjavac
        9
    justjavac  
       2016-05-27 22:39:55 +08:00 via Android
    @gogosun 把网页发来
    gogosun
        10
    gogosun  
    OP
       2016-05-28 08:28:55 +08:00
    @justjavac http://www.680107.top/g20160527125652552884094/g20160508200004340421368/AAABVRU3URsAAAABMQAAADE.html 这个链接电脑上打开显示不了真实页面,在手机浏览器打开,然后分享到朋友圈,然后再从朋友圈复制链接会不带尾巴。
    justjavac
        11
    justjavac  
       2016-05-28 17:38:43 +08:00 via Android
    @gogosun 带尾巴的页面呢?
    gogosun
        12
    gogosun  
    OP
       2016-05-28 19:35:52 +08:00
    @justjavac 带尾巴链接: http://www.680107.top/g20160527125652552884094/g20160508200004340421368/AAABVRU3URsAAAABMQAAADE.html?from=timeline&isappinstalled=0
    把这 2 个链接复制到微信上发到一个聊天对话框, 2 个显示的内容不同。
    我想知道他是如何实现访问带尾巴的链接后自动去掉了尾巴,然后还能显示访问带尾巴的那个链接页面内容。
    去掉尾巴后,他不就重定向到了 http://www.680107.top/g20160527125652552884094/g20160508200004340421368/AAABVRU3URsAAAABMQAAADE.html 了么?
    但是这个链接页面的机制是显示的另外一个页面。和带尾巴链接所显示的页面不同。他是如何显示出带尾巴链接的页面内容呢。
    justjavac
        13
    justjavac  
       2016-05-28 22:01:10 +08:00 via Android
    说了半天才明白。这不就是 path query 吗
    gogosun
        14
    gogosun  
    OP
       2016-05-29 00:13:36 +08:00
    @justjavac 大神, path query 如何实现这个功能的?
    gogosun
        15
    gogosun  
    OP
       2016-05-29 00:20:40 +08:00
    @justjavac 我看他网页代码有这个:

    <script type="text/javascript">
    var articleUrl = "http://www.wehappyd.com/agile-cms/touch/article.action?id=g20150924070028956132562&preview=1";
    var isFromTimeline = "false";
    var isFromGroupmessage = "false";
    if (isFromTimeline == "true" || isFromGroupmessage == "true") {
    setTimeout(function(){
    location.replace('');
    }, 500);
    } else {
    document.getElementById("mainFrame").src = articleUrl;
    document.getElementById("mainFrame").removeAttribute("style");
    }
    </script>

    wehappyd.com 这个链接打开后的内容实际上就是不带尾巴那条链接显示的内容。
    那么从有尾巴链接重定向到无尾巴链接可以传递 isFromTimeline 和 isFromGroupmessage 参数么?


    小白一个,这两天才恶补一些 php js 知识。
    请大神不吝赐教!谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3410 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:50 · PVG 19:50 · LAX 03:50 · JFK 06:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.