微信分享哈希路由

微信公众号开发会涉及到分享的需求。如果是传统的服务器端渲染没什么问题,spa 也没什么问题,但是当 spa 使用哈希路由的时候就会出问题了。

最近在做一个公众号的开发,做到微信分享的时候出现一个问题。在调试的时候可以看到分享出来的链接是正确的,但是用户点击分享的链接只会进入到首页。这根本讲不通啊。

后来抓包可以看到,分享出来的链接地址发生了改变。因为使用的是哈希路由,中间有一个#号,而微信分享出来的页面把#后边(包括#)都给吞掉了,并替换成了微信对应的参数,就是来自于朋友圈、好友之类的用作统计。更神奇的是,安卓这样进入首页可以理解了,而 ios 没有#部分,确可以正确进入对应的路由。如果有知道这样原因的朋友可以告诉我。

后来,在网上看到可以在#前加?的方法可以解决这个问题。试了一下,就 ok 了。

[越努力,越幸运!]