微信分享链接被添加参数导致网页无法正常访问


Android和iOS的APP使用了微信提供的分享功能,而分享到微信内的链接会被添加参数。

例如,原地址是:


 http://example.com/page?s=mobile&v=share

但分享到微信后,其他人点击跳转到的地址变成了:


 http://example.com/page?s&from=singlemessage&isappinstalled=1

可以看出原参数被破坏,而原网页必须要这几个GET参数才能返回供微信使用的特定版本,所以是有问题的。

那么,有办法可以让在微信在这个过程中不破坏原来的参数吗(例如微信支持某种符合要求的特定格式)?


问题补充:

我觉得,微信本来应该只是添加了参数,并不会破坏原有参数。所以,可能是我APP调用微信的方式不对?

微信 微信分享 移动应用开发

se⑦en 9 years, 6 months ago

这个应该是没有办法的。微信会自动添加 isappinstalled 添加。想办法在后台处理。

东行寺幽幽子 answered 9 years, 6 months ago

已找到问题原因。微信本身并不会破坏原有参数,是我APP的处理方法有误。

我APP会收到一长串经过URI编码的字符串,然后需要分析读取内容,再将其发送到微信分享。

例如:


 xapp://share?title=xxxxxx&url=zzzzzz&content=yyyyyy

这里的zzzzzz本身是比较复杂的url经过JavaScript的 encodeURIComponent() 编码后得到的字符串,我在解析的时候,直接上面一整个字符串进行解码,所以原来比较复杂的url中携带的 & = 就被我误解析了。

改为先解析,然后每一项内容(title、url、content)分别解码就可以了。

也感谢 @phodal。

切绘手沉雨 answered 9 years, 6 months ago

Your Answer