由于微信版本的升级,旧版的分享接口已经即将弃用,不少新版本的微信用户反映分享功能有BUG,
看了下文档微信公众号新的分享接口,
“请注意,原有的 wx.onMenuShareTimeline、wx.onMenuShareAppMessage、wx.onMenuShareQQ、wx.onMenuShareQZone 接口,即将废弃。请尽快迁移使用客户端6.7.2及JSSDK 1.4.0以上版本支持的 wx.updateAppMessageShareData、updateTimelineShareData 接口”
所以就用了updateAppMessageShareData 这个接口来分享,分享的话是成功了,但是由于 业务关系 需要在分享成功之后做一些操作,按找文档上的代码格式编写了回调函数,但是没有分享成功或取消分享之后没有回调。求解。代码如下
function lqCard(){
var url = window.location.href;
var openid = $("#openid").val();
var sign = $("#sign").val();
var remberId= $("#remberId").val();
//alert("remberId:"+remberId+"openid:"+openid);
$.ajax({
url: "<@spring.url '/getJSSDKSignature'/>", //请求的url地址
dataType: "json", //返回格式为json
data: {
"url":url,
}, //参数值
type: "GET", //请求方式
success: function(result) {
var appId = result.appId;
var timestamp = result.timestamp;
var nonceStr = result.nonceStr;
var signature = result.signature;
wx.config({
debug: true,
appId: appId,
timestamp: timestamp,
nonceStr: nonceStr,
signature: signature,
jsApiList: [
'updateAppMessageShareData'
]
});
wx.ready(function(){
var remark="123";
var url="https://www.xxxx.cn";
var imgURL="https://www.xxxx.cn/xx.jpg";
wx.updateAppMessageShareData({
title: remark, // 分享标题
desc: "点击领取电子凭证", // 分享描述
link: url,
imgUrl:imgURL, // 分享图标
},function (res) {
alert("[调试信息]");
});
});
wx.error(function(res){
alert("error");
});
}
});
}
按理说如果正常流程的话,无论分享成功或失败的话 都是会弹出[调试信息] ,但是不知道为什么一直没有到回调函数里面。。。求大牛指点。。
分享1.4.0版本 点击分享成功的回调函数不知道怎么获取了
这个回调只是设置成功的回调,不是分享成功的回调
JSSDK 1.4.0 哪里有啊?我怎么没有找到啊
经测试,jssdk@1.6.0我使用的版本
wx.config({
debug: false,
appId: info.appid,
timestamp: info.timestamp,
nonceStr: info.noncestr,
signature: info.signature,
jsApiList: [
'checkJsApi',
'hideMenuItems',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo'
]
})
如果需要分享成功触发一些操作,不要使用新的分享 api 如:
自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)- updateTimelineShareData
不要将 updateTimelineShareData 等在 jsApiList中 列出,依旧使用旧的 api,微信只是说即将废弃,几年了也没见废弃
// 定义通用分享数据
const shareData = {
title: '分享标题',
desc: '分享标题描述',
link: 'https://xxx.xxx.com',
imgUrl: 'https://xxx/xxx/xxx.png',
success: function () {
console.log('分享成功success~')
// 分享成功后的操作
}
}
wx.ready((res) => {
// 隐藏菜单
wx.hideMenuItems({
menuList: [
'menuItem:copyUrl',
'menuItem:originPage',
'menuItem:openWithQQBrowser',
'menuItem:openWithSafari',
'menuItem:share:facebook',
'menuItem:share:QZone',
'menuItem:share:email'
]
})
// 分享,这里调用老版本的,可以监听分享的 success
wx.onMenuShareAppMessage(shareData)
wx.onMenuShareTimeline(shareData)
wx.onMenuShareQQ(shareData)
wx.onMenuShareWeibo(shareData)
})
// 移动端可以添加,vConsole.js 来测试,分享成功的 success 是否触发
// index.html
var vConsole = new VConsole()