我在做我們的項目中用到了判斷用戶是否將文章或者內容通過微信分享出去了,確定用戶通過微信分享出去后給用戶增加相應的積分。
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();
}