updateTimelineShareData 苹果手机分享为什么不是自定义的链接?
据API文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 调用的是wx.updateTimelineShareData 的接口 验证错误复现:请用安卓手机和苹果手机分别访问 https://wx.laserfair.com/awards/2021/mobile/get_code.php,然后在应用页面的右上角点击分享到朋友圈就能复现下图的问题 [图片] [图片] 上图聊天对话框是“发送给朋友的”功能,从这截图看wx.updateAppMessageShareData 在苹果手机端也有问题。
我的业务逻辑:https://wx.laserfair.com/awards/2021/mobile/get_code.php 获得用户的openid会跳转到https://wx.laserfair.com/awards/2021/mobile/index.php 我做了投票分享的链接:https://wx.laserfair.com/awards/2021/mobile/get_code.php 旨在每个用户分享链接后都访问的是这个链接,然后我能获取到微信用户的Openid,用来做唯一标识,防止用户刷票。现在的情况是安卓手机这边“朋友圈分享”,“发送给朋友”的功能是正常的,分享的也是……get_code.php的链接。但到了苹果手机选择分享,直接分享的是https://wx.laserfair.com/awards/2021/mobile/index.php,然后这个页面点投票,没有经过get_code.php,所以我就得不到openid,导致用户投不了票。现在就是这么个情况 我的手机:redmiK30 微信8.0 测试用的苹果手机:iphone12 微信8.0 iphonexs Max 微信8 iphone8 微信8 // alert(location.href.split('#')[0])
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: 'wxa9f4a43b6e98f682', // 必填,公众号的唯一标识
timestamp: {$timestamp}, // 必填,生成签名的时间戳
nonceStr: '{$nonceStr}', // 必填,生成签名的随机串
signature:'{$sign}',// 必填,签名
jsApiList: ['hideMenuItems','updateAppMessageShareData','updateTimelineShareData','onMenuShareTimeline'] // 必填,需要使用的JS接口列表
});
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
wx.hideMenuItems({
menuList: ["menuItem:copyUrl","menuItem:editTag","menuItem:delete",
"menuItem:originPage","menuItem:readMode", "menuItem:openWithQQBrowser", "menuItem:openWithSafari",
"menuItem:share:email","menuItem:share:brand","menuItem:share:qq",
"menuItem:share:QZone"] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮
});
wx.updateAppMessageShareData({
title: '“红光奖”2021年度激光行业创新贡献奖评选活动', // 分享标题
desc:'投票火爆进行中,请为心仪的企业和产品投上您宝贵的一票',
link: 'http://wx.laserfair.com/awards/2021/mobile/get_code.php', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: 'https://wx.laserfair.com/awards/2021/resource/img/m_banner.jpg', // 分享图标
success: function () {
console.log('可以开始分享')
// 设置成功
}
});
wx.updateTimelineShareData({
title: '“红光奖”2021年度激光行业创新贡献奖评选活动', // 分享标题
link: 'http://wx.laserfair.com/awards/2021/mobile/get_code.php', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: 'https://wx.laserfair.com/awards/2021/resource/img/m_banner.jpg', // 分享图标
success: function () {
// 用户点击了分享后执行的回调函数
console.log('朋友圈分享成功')
}
});
});
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
alert.log(res);
});