微信sdk是不是又改了?

发布于 2022-09-11 14:26:35 字数 1171 浏览 15 评论 0

问题描述

  • 在spa应用里通过接口拉取相关信息在回调里设置分享不生效
  • 分享配置写在回调外就生效
  • 在微信开发者工具里分享配置生效
  • 以前明明写过的可以的,不知道是不是因为微信版本改了使sdk失效了

问题出现的环境背景及自己尝试过哪些方法

最近写的页面用到这个设置动态分享文案的需求,就出现上述的几个问题;
检查以前配置过的同样情况的其他页面也突然不生效了;
而如果不拿接口数据在回调外直接设置则可以生效;
所以很有可能是微信修改了分享sdk,只允许加载后立即设置分享配置,而不能等接口回调才设置;

我还尝试过把wx_init放在接口请求外,把接口请求放在wx_init回调里,wx.onMenuShareAppMessage写在接口请求回调内,还是不生效;具体可以看下面的代码

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

// 获取后端微信签名及相关信息
var wx_init = (cb) => {
    fetch('https://api.domain.com/wechat/signature?url=' + encodeURIComponent(location.href.split('#')[0])).then((res) => {
        // 微信配置
        var wx_config = {...}
        
        wx.config(wx_config);
        wx.ready(cb);
        wx.error(function(e) {alert(e)})
    })
}

// 业务相关页面
// 获取业务数据后设置分享配置
fetch('https://api.domain.com/userinfo').then((res) => {
    wx_init(() => {
        // 分享配置
        var share_config = {...}
        wx.onMenuShareAppMessage(share_config);
        wx.onMenuShareTimeline(share_config);
    })
})


最神奇的是微信开发者工具是生效的,没有任何问题,而手机微信则不生效,分享配置写在接口外能生效,所以可以排除微信签名的问题。

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

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

发布评论

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

评论(1

耳根太软 2022-09-18 14:26:35

问题已经解决了,原因是我的分享配置share_config.link,链接格式有问题导致分享配置不生效,以后多加注意

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文