微信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);
})
})
最神奇的是微信开发者工具是生效的,没有任何问题,而手机微信则不生效,分享配置写在接口外能生效,所以可以排除微信签名的问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题已经解决了,原因是我的分享配置share_config.link,链接格式有问题导致分享配置不生效,以后多加注意