近期又用到微信分享的功能了。雖然不是第一次用了,依然我又有幸踩到了一個坑,因此分享一下吧。javascript
根據微信sdk寫的代碼一步步很順利,可是後面就是獲取微信返回的分享結果的回調的時候IOS總是有問題,而後就網上各類搜,可是我獲得的大部分答案是分享連接url的限制即:該分享連接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致。html
but個人url符合要求就仍是拿不到分享後的回調,而後通過一番折騰最後發如今微信分享成功回調的方法里加一個定時器就ok了。java
→提示:web
☞更多微信分享內容可移步:http://www.javashuo.com/article/p-cyhfvupd-bw.htmlajax
<script type="text/javascript" src="https://res2.wx.qq.com/open/js/jweixin-1.3.2.js "></script>
function wxShare(){ // 1 判斷當前版本是否支持指定 JS 接口,支持批量判斷 wx.ready(function () { wx.checkJsApi({ jsApiList: [ 'onMenuShareAppMessage', 'onMenuShareTimeline' ], success: function (res) { console.log("驗證經過:"+JSON.stringify(res)); } }); /* 分享好友1.3*/ wx.onMenuShareAppMessage({ type: 'link', // 分享類型,music、video或link,不填默認爲link title: '【春節】2019你好!', // 分享標題 desc: 'hello。', // 分享描述 link:'https://'+location.hostname+'/web', imgUrl: '', // 分享圖標 success: function (res) { // 設置成功 if(res.errMsg.indexOf(':ok')!=-1){ shareCallback();//分享成功的回調 }else if(res.errMsg.indexOf(':cancel')!=-1){ mui.toast('分享已經取消'); }else{ mui.toast('分享失敗'); } }, cancel: function () { alert("分享已經取消"); } }); /* 分享朋友圈1.3 */ wx.onMenuShareTimeline({ type: 'link', // 分享類型,music、video或link,不填默認爲link title: '【春節】2019你好!', // 分享標題 link:'https://'+location.hostname+'/web', imgUrl: '', // 分享圖標 success: function(res){ setTimeout(function(){ shareCallback();//分享成功的回調 },500); }, cancel: function () { alert("分享已經取消"); } }); }) wx.error(function(res){ mui.toast("wx:"+res.errMsg); }); }
/* 分享成功的回調 */ function shareCallback(){ $.ajax({ type : 'post', url : '/web/tic/shareCallback', dataType:'json', beforeSend: function() { $('.mui-loading').show(); mask.show();//顯示遮罩層 }, success: function(json){ mask.close();//關閉遮罩層 console.log(json); if(json.status=='fail'){ mui.toast(json.msg); return; }else{ mui.toast('分享成功!'); setTimeout(function(){ if(json.getRed==1){ $('.shareModal').hide() $('.pop_wrap').show(); }else{ window.location.reload(); } },800); } }, error:function(XMLHttpRequest, textStatus, errorThrown){ mask.close();//關閉遮罩層 alert('error:'+textStatus+"***"+JSON.stringfy(XMLHttpRequest.readyState)) mui.toast('請求失敗(500)'); } }); }