测试机型:iphone 12 15.4.1
微信版本:8.0.20
appID: wx9ff02935f22ca85c
vue spa, history mode
因为是配置在公众号菜单里面的,所以需要关注下。入口:掌上营业厅 - 投顾商城 - 首页tab 服务包 - 服务包列表 - 服务包详情 - 分享
// 导入jssdk
<script charset="utf-8" type="text/javascript" src="//res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
// 通用分享方法 在每个需要分享的页面 create 钩子调用
// url: 要分享的页面完整path
export async function initWxShare(title, intro, url, imgUrl) {
try {
if (!title || !intro || !url) return;
url = url.split('#')[0];
const { data } = await axios.get(`${window.CONFIG.wxSignatureUrl}${url}`);
if (data.error_no !== '0') return;
const result = data.results[0];
wx.error((res) => {
console.error(res);
});
wx.config({
debug: false,
appId: result.appid,
timestamp: result.timestamp,
nonceStr: result.nonceStr,
signature: result.signature,
jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage', 'onMenuShareTimeline']
});
wx.ready(() => { // 需在用户可能点击分享按钮前就先调用
const shareData = {
title,
desc: intro.replace(/<\/?.+?\/?>/g, ''),
link: url,
imgUrl: imgUrl || `${window.location.origin}${window.PUBLIC_PATH}user.png`,
success(d) {
// 设置成功
console.log('success', d);
},
};
// 1.4.0 新接口 (只调用这个接口在安卓下是无效的)
wx.updateAppMessageShareData(shareData); // 好友
wx.updateTimelineShareData(shareData); // 朋友圈
// 1.2.0 老接口 兼容
wx.onMenuShareAppMessage(shareData);
wx.onMenuShareTimeline(shareData);
});
} catch (e) {
// ...
}
}
ios 端报错 config: invalid signature, realAuthUrl: Array[1]...
查资料说的是ios端微信浏览器打开的h5链接跳转时,wkwebview上的url永远是首次打开的地址,与真实要分享的页面url不一致,导致签名校验失败;而安卓无此问题。
请问这一个问题怎么处理?
另外,ios端直接分享一个h5链接出去仍然是链接,但是收藏这个链接之后,从收藏里面打开分享就是自定义内容的卡片形式,这是什么策略?
自从上次微信调整开放链接访问后就这情况。