Android和iOS的APP使用了微信提供的分享功能,而分享到微信内的链接会被添加参数。
例如,原地址是:
http://example.com/page?s=mobile&v=share
但分享到微信后,其他人点击跳转到的地址变成了:
http://example.com/page?s&from=singlemessage&isappinstalled=1
可以看出原参数被破坏,而原网页必须要这几个GET参数才能返回供微信使用的特定版本,所以是有问题的。
那么,有办法可以让在微信在这个过程中不破坏原来的参数吗(例如微信支持某种符合要求的特定格式)?
问题补充:
我觉得,微信本来应该只是添加了参数,并不会破坏原有参数。所以,可能是我APP调用微信的方式不对?
已找到问题原因。微信本身并不会破坏原有参数,是我APP的处理方法有误。
我APP会收到一长串经过URI编码的字符串,然后需要分析读取内容,再将其发送到微信分享。
例如:
这里的zzzzzz本身是比较复杂的url经过JavaScript的
encodeURIComponent()
编码后得到的字符串,我在解析的时候,直接上面一整个字符串进行解码,所以原来比较复杂的url中携带的&
、=
就被我误解析了。改为先解析,然后每一项内容(title、url、content)分别解码就可以了。
也感谢 @phodal。