微信sdk是不是又改了?

问题描述

  • 在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);
    })
})


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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进