微信 JS SDK 网页分享自定义链接失效,打开始终为首页 BUG

遇到微信的一个 BUG,通过 JS SDK 设置的分享链接失效,打开始终为首页的问题。就不多吐槽了,微信的开发体验是真的差,希望能慢慢有改善吧。

在开发微信公众号页面时,用到了微信 JS SDK updateAppMessageShareData, updateTimelineShareData 自定义分享给朋友/朋友圈链接。但不论怎么调试,分享出来的链接打开始终是首页,链接后面的内容全部丢失。

最终确定问题竟然来自于微信的 BUG,目前升级到 8.0.21 之后恢复正常。

一些官方回复的截图:

TL, DR

下面是一些详细描述、过程中的一些记录和其他未测试的解决方案

问题具体情况如下:

比如 https://xx.com/#/page/1 页面,分享出去的链接标题、副标题全部正常,唯独点开之后链接是打开的首页 https://xx.com/

一直怀疑和 # 号的处理有关系,但幸运的是没有尝试到这一步。最终的结果也证明了和链接中的 # 号没有关系。

另一个没有尝试从 hash route mode 切换到 history mode 的原因是:

当我尝试在 https://xx.com/#/page/1 页面分享时,给 updateAppMessageShareData 等方法传入的 link 属性为 https://xx.com/index.html#/page/1 时,分享出来的链接是正常且完整的。

在右上角分享并选择好友后,有一个“发送到”的询问确认发送的 modal ,点击上面的链接是可以正常跳转的,但点发送之后访问发出的链接却又是首页。

References