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

发布于 2022-09-01 12:09:29 字数 460 浏览 21 评论 0

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

例如,原地址是:

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

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

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

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

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


问题补充:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

生生漫 2022-09-08 12:09:29

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

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

例如:

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

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

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

也感谢 @phodal。

杀手六號 2022-09-08 12:09:29

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

野稚 2022-09-08 12:09:29

//默认显示配置的 title

  let isFromWX = location.href.indexOf("fromWX");
  let urlObjParams;
  if (isFromWX == -1) {
    urlObjParams = OperationUtil.getQueryStringForm(
      location.href.split("?")[1]
    );
  } else {
    urlObjParams = OperationUtil.getQueryStringForm(
      location.href.split("?")[2]
    );
  } 做一个兼容处理,在链接里面加一个参数做区分,然后正常的获取自己的参数 就可以了
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文