微信分享包含两种,一是分享到朋友圈,另一种是分享给朋友。现在我详细介绍一下调用的流程:
1.查看微信公众平台开发者文档
http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
2.JS文件的引入
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
3.通过config接口注入权限验证配置
wx.config({ de
//debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '${appId}', // 必填,公众号的唯一标识
timestamp: '${timestamp}', // 必填,生成签名的时间戳
nonceStr: '${nonceStr}', // 必填,生成签名的随机串
signature: '${signature}',// 必填,签名,见附录1
jsApiList: ['onMenuShareAppMessage','onMenuShareTimeline'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
注意:在调用分享接口前一定确保config的配置成功,可以通过debug:true返回的信息来查看appId,timestamp,nonceStr,signature是否获取成功。一般调用接口的地方都会通过拦截器来获取appId,timestamp,nonceStr,signature。
4.通过ready接口处理成功验证
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
5.分享接口的调用
$(function() {
function submitShare(){
openLoadLayer();
var postData = getInitPageParams();
postData.qaId='${keyId}';
postData.openId='${openId}';
postData.share=1;
$.post(
BOM.rootURL + "wxactivityjson/saveUserinfo.action",postData,function(data) {
closeAllLayer();
if(data.actionErrors&&data.actionErrors.length>0){
alert(data.actionErrors[0]);
}else{
alert('分享成功');
}
}, 'json');
}
var wxTitle = "快来猜一猜";
var wxDesc = "碰一下运气,猜对了,大奖就是你的了!";
var linkurl = "http://wx2.jerehsoft.com/xiaov/wxactivity/appid_"+'${appId}'+"/qanda.action?keyId="+'${keyId}';
var imgUrl = "http://wx2.jerehsoft.com/xiaov/activity/answer/img/share.jpg";
wx.ready(function(){
//alert(111);
wx.onMenuShareAppMessage({
title : wxTitle, // 分享标题
desc : wxDesc, // 分享描述
link : linkurl, // 分享链接
imgUrl : imgUrl, // 分享图标
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
},
success: function (res) {
submitShare();
},
cancel: function (res) {
alert('已取消分享');
},
fail: function (res) {
//alert(JSON.stringify(res));
alert('分享失败');
}
});
wx.onMenuShareTimeline({
title : wxTitle, // 分享标题
link : linkurl, // 分享链接
imgUrl : imgUrl, // 分享图标
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
},
success: function (res) {
submitShare();
},
cancel: function (res) {
alert('已取消分享');
},
fail: function (res) {
alert('分享失败');
}
});
wx.hideOptionMenu();
});
wx.error(function(res){
alert(JSON.stringify(res));
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,
也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
$('.share-btn').click(function () {
wx.ready(function() {
wx.showOptionMenu();
//alert('点击右上角菜单按钮分享给朋友');
showShare();
});
});
});