只封装了微信分享到朋友和朋友圈:
在页面引入:
<script src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script src="/js/wxShare-1.1.0"></script>
然后在业务代码里调用:
wxShare.title='title';
wxShare.desc='desc';
wxShare.successCallback=function(){};
wxShare.ok();
tips:
微信每次更新分享话术都要重新调一次wx.onMenuShareAppMessage 或者wx.onMenuShareTimeline;
所以如果修改话术调用完封装的wxShare.title
等信息后,要再调一次wxShare.ok()
进行更新分享
/**
* 微信分享给朋友/朋友圈
* @wxShare {object} 分享给朋友/朋友圈的参数和成功失败回调
* wxShare.title.desc.url.imgUrl.successCallback.cancelCallback.ok()
* @return {[type]} [description]
*/
$.get('/wxShare.action', { url: location.href.split('#')[0] }).done(function(res) {
wx.config({
debug: false,
appId: res.appId,
timestamp: res.timestamp,
nonceStr: res.nonceStr,
signature: res.signature,
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
'hideMenuItems',
'showMenuItems',
'hideAllNonBaseMenuItem',
'showAllNonBaseMenuItem',
'translateVoice',
'startRecord',
'stopRecord',
'onRecordEnd',
'playVoice',
'pauseVoice',
'stopVoice',
'uploadVoice',
'downloadVoice',
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage',
'getNetworkType',
'openLocation',
'getLocation',
'hideOptionMenu',
'showOptionMenu',
'closeWindow',
'scanQRCode',
'chooseWXPay',
'openProductSpecificView',
'addCard',
'chooseCard',
'openCard'
]
});
}).fail(function() { console.log('微信分享获取后台参数ajax失败!'); });
var wxShare = {
ok: function() {
var self = this;
self.title = self.title || 'title';
self.desc = self.desc || 'desc';
self.link = self.link || location.href;
self.imgUrl = self.imgUrl || location.protocol + '//' + location.host + '/logo.jpg';
wx.ready(function() {
wx.onMenuShareAppMessage({
title: self.title,
desc: self.desc,
link: self.link,
imgUrl: self.imgUrl,
success: function() {
console.log('分享给朋友成功!');
if (typeof self.successCallback === 'function') {
self.successCallback();
}
},
cancel: function() {
console.log('分享给朋友失败!');
if (typeof self.cancelCallback === 'function') {
self.cancelCallback();
}
}
});
wx.onMenuShareTimeline({
title: self.title2 || self.title,
desc: self.desc2 || self.desc,
link: self.link2 || self.link,
imgUrl: self.imgUrl2 || self.imgUrl,
success: function() {
console.log('分享到朋友圈成功!');
if (typeof self.successCallback2 === 'function') {
self.successCallback2();
} else if (typeof self.successCallback === 'function') {
self.successCallback();
}
},
cancel: function() {
console.log('分享到朋友圈失败!');
if (typeof self.cancelCallback2 === 'function') {
self.cancelCallback2();
} else if (typeof self.cancelCallback === 'function') {
self.cancelCallback();
}
}
});
});
}
}