我在做我们的项目中用到了判断用户是否将文章或者内容通过微信分享出去了,确定用户通过微信分享出去后给用户增加相应的积分。
15年微信修改了策略可以直接调用对应的接口
引入微信接口文件 http://res.wx.qq.com/open/js/jweixin-1.0.0.js
开始分享代码
WeixinApi.ready(function(Api) {
// 微信分享的数据
var wxData = {
"appId": "", // 服务号可以填写appId
"imgUrl" : 'http://www.forasp.cn/logo.jpg',
"link" : location.href,
"desc" : document.title,
"title" : document.title
};
// 分享的回调
var wxCallbacks = {
// 分享操作开始之前
ready : function() {
},
cancel : function(resp) {
},
// 分享失败了
fail : function(resp) {
},
// 分享成功
confirm : function(resp) {
shareok();
},
all : function(resp,shareTo) {
}
};
Api.shareToFriend(wxData, wxCallbacks);
Api.shareToTimeline(wxData, wxCallbacks);
Api.shareToWeibo(wxData, wxCallbacks);
Api.generalShare(wxData,wxCallbacks);
});
function shareok(){
}
参考 http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
下面是以前的代码,15年后不能用了
首先我们看一下我修改用户发送给朋友或者分享到朋友圈代码
function onBridgeReady() {//当用户分享信息时
WeixinJSBridge.on('menu:share:appmessage', function(argv)
{
WeixinJSBridge.invoke('sendAppMessage',{
"title":document.title,//微信分享标题
"link":location.href,//微信分享连接
"desc": document.desc,//微信分享简介
"img_url":"http://www.forasp.cn/images/logo2.gif",//这个是分享图片
"img_width":"120",//这个是分享图片宽度
"img_height":"120",//这个是分享图片高度
},function(data){/**这里是我们的重点,分享回调函数,我们通过 回调函数中的参数可以判断用户做了那种操作**/
if(data.err_msg=="send_app_msg:ok")send_intergal();//当分享成功时,我们调用我们自己定义函数
});
});
WeixinJSBridge.on('menu:share:timeline', function(argv){//当用户分享到朋友圈
WeixinJSBridge.invoke('shareTimeline',{
"title":document.title,
"link":location.href,
"desc": document.desc,
"img_url":"http://www.forasp.cn/images/logo2.gif",
"img_width":"120",
"img_height":"120",
},function(data){/**这里是我们的重点,分享回调函数,我们通过**/
if(data.err_msg=="send_app_msg:ok")send_intergal();
});
});
}
//
这里是我们定义的当分享成功后处理函数,一般是ajax,这里的回调函数不能保证百分百都执行成功。
function send_intergal(){
$.post('/share_sure',{},function(data){},'json');
}
//当用户进行页面加载时,将Weixin浏览器定义的事件进行绑定。
if (typeof WeixinJSBridge === "undefined"){
if (document.addEventListener){
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
}
}else{
onBridgeReady();
}