JSSDK 版本: 1.4.0
系统版本:iOS 15.0
问题:一直使用的项目在 iOS 15 中微信分享无法正常使用,打开 debug 报 config:invalid signature
详细信息:
公司项目中微信分享由 updateAppMessageShareData 配置,之前一直正常使用,但最近发现 iOS 15 中分享丢失标题、描述、图标。
打开 wx.config 的 debug 后发现 config:invalid signature。仅在 iOS 15 中复现,安卓、非 iOS 15 测试机、同事非 iOS 15手机均正常。
按照文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#66 排查过,6个排查点
1、2、4、5 iOS 15 和非 iOS 15 使用同样的代码,一直未更改过,可以确认无问题
3、6 涉及到 URL 不好修改线上代码,专门弄了个复现该问题的 demo 确认过,iOS 15 中 URL 中无 #、URL 无跳转&变更,但还是会 config:invalid signature
可以用这个 demo https://wow.liepin.com/preview/t1005883/20211011155812/share.html 查看。在 iOS 15 上就会显示签名无效
上图中,有标题图标的是非 iOS 15 手机,丢失标题的是 iOS 15
请问一下这个是什么问题,应该如何解决?

你这个问题解决掉了?
问题解决了吗?我也是类似的问题
webview里 config 报签名无效,又遇到过吗
可以用微信扫码查看 demo
是否有二次确认弹窗,如果有微信的二次确认弹窗 那么JSSDK就会失效。
扫码、点击分享的链接进入,没有这个拦截,但是还是报 config:invalid signature
await getScript('https://res.wx.qq.com/open/js/jweixin-1.4.0.js');await getScript(`https://open.${baseDomain}/weixinJs/getSignatureStr?accountType=1&ver=` +time +'&var=weixinConfigInfo');let wx = window.wx;let wxConfigInfo = window.weixinConfigInfo;wx.config({debug: true,appId: wxConfigInfo.appId, // 企业号的唯一标识timestamp: wxConfigInfo.timestamp, // 生成签名的时间戳nonceStr: wxConfigInfo.nonceStr, // 生成签名的随机串signature: wxConfigInfo.signature, // 签名jsApiList: [// 需要使用的JS接口列表'hideAllNonBaseMenuItem','showMenuItems','onMenuShareTimeline','onMenuShareAppMessage','updateAppMessageShareData']});var shareConfig = {title, // 分享标题desc,link,imgUrl,success, // 用户确认分享后执行的回调函数cancel // 用户取消分享后执行的回调函数};wx.ready(function () {wx.onMenuShareTimeline(shareConfig); // 分享到朋友圈wx.onMenuShareAppMessage(shareConfig); // 分享给朋友log('wx ready');log(`UA: ${navigator.userAgent}`);log(`url: ${window.location.href}`);log(`ver: ${time}`);log(`weixinConfigInfo: ${JSON.stringify(wxConfigInfo)}`);window.wx.updateAppMessageShareData && window.wx.updateAppMessageShareData({title: shareConfig.title, // 分享标题desc: shareConfig.desc, // 分享描述link: shareConfig.link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: shareConfig.imgUrl, // 分享图标success: function () {log(`设置成功`);}});});