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

2016-05-27 16:34:42 +08:00
 gogosun
大家好,打开一个在微信朋友圈分享的网页后,点击右上角的菜单选择复制链接通常复制出来的链接后面会带一个小尾巴,应该是微信强制加上的吧?
小尾巴:?from=timeline&isappinstalled=
复制出来是这种效果: http://www.baidu.com/g20160527125652552884094/g20160508200004340421368/AAABVRU3URsAAAABMQAAADE.html?from=timeline&isappinstalled=

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

尾巴不是微信 APP 加的,而是微信 SDK 加的。
gogosun
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
2016-05-27 20:24:21 +08:00
如果 a 是你能控制的页面,那么可以检测一下是否有尾巴,有就跳转到无尾巴
gogosun
2016-05-27 20:54:47 +08:00
@JiShuTui 在什么环节检测?被分享到朋友圈后检测么?如何知道页面已经被分享了?
JiShuTui
2016-05-27 21:13:38 +08:00
@gogosun 前端或者后端都可以判断,在被打开是判断,通过 ua 可以判断是否是微信内打开,同时判断尾巴
justjavac
2016-05-27 21:38:10 +08:00
@gogosun 用的百毒浏览器自带的分享功能?
gogosun
2016-05-27 21:53:47 +08:00
@JiShuTui 就是朋友圈内的网页被打开后判断么?那个尾巴是在什么环节加上的呢?
gogosun
2016-05-27 21:54:00 +08:00
@justjavac 是的,百度浏览器
justjavac
2016-05-27 22:39:55 +08:00
@gogosun 把网页发来
gogosun
2016-05-28 08:28:55 +08:00
@justjavac http://www.680107.top/g20160527125652552884094/g20160508200004340421368/AAABVRU3URsAAAABMQAAADE.html 这个链接电脑上打开显示不了真实页面,在手机浏览器打开,然后分享到朋友圈,然后再从朋友圈复制链接会不带尾巴。
justjavac
2016-05-28 17:38:43 +08:00
@gogosun 带尾巴的页面呢?
gogosun
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
2016-05-28 22:01:10 +08:00
说了半天才明白。这不就是 path query 吗
gogosun
2016-05-29 00:13:36 +08:00
@justjavac 大神, path query 如何实现这个功能的?
gogosun
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 知识。
请大神不吝赐教!谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/281719

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX