在微信开发者工具上调试分享接口成功,真机测试的时候却失败了。
后来发现是手机反应比较慢
wx.config()
还未执行成功后面绑定分享按钮事件的代码就开始执行了导致绑定失败
因此在页面加载时需要立即执行的接口必须写在wx.ready()
中
修改后的代码
//从服务端获取配置信息
$.post('/getSignPackage',{location:window.location.href},function(data){
wx.config({
debug: false,
appId: data.appId,
timestamp: data.timestamp,
nonceStr: data.nonceStr,
signature: data.signature,
jsApiList: [
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
'onMenuShareQZone'
]
});
var data = {
title: 'title', // 分享标题
desc: 'desc', // 分享描述
link: 'link', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: 'imgUrl', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
};
wx.ready(function(){
wx.onMenuShareTimeline(data);
wx.onMenuShareAppMessage(data);
wx.onMenuShareQQ(data);
wx.onMenuShareWeibo(data);
wx.onMenuShareQZone(data);
});
});
另外,如果js是在页面加载完毕执行的话。当页面为由加载完毕的时候用户点击分享也不会生效,需要根据情况设置加载态提示用户。