微信分享網頁後,再次點擊微信分享的內部會自動在網址後拼接&from=來源,致使二次分享的圖案文案失效,解決辦法:api
function getQueryString(name) {//根據字段看網址是否拼接&字符串 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } var from = getQueryString('from'); var appinstall = getQueryString('appinstall'); var sec = getQueryString('sec'); var timekey = getQueryString('timekey'); if(from || appinstall || sec || timekey){//假如拼接上了 window.location.href =重置網址 }
在須要分享的網頁裏寫入微信jssdk代碼安全
wx.config({ debug: true, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來,若要查看傳入的參數,能夠在pc端打開,參數信息會經過log打出,僅在pc端時纔會打印。打印標識config: appId: '', // 必填,公衆號的惟一標識 timestamp: , // 必填,生成簽名的時間戳 nonceStr: '', // 必填,生成簽名的隨機串 signature: '',// 必填,簽名,見附錄1 jsApiList: [] // 必填,須要使用的JS接口列表,全部JS接口列表見附錄2 }); wx.ready(function(){ // config信息驗證後會執行ready方法,全部接口調用都必須在config接口得到結果以後,config是一個客戶端的異步操做,因此若是須要在頁面加載時就調用相關接口,則須把相關接口放在ready函數中調用來確保正確執行。對於用戶觸發時才調用的接口,則能夠直接調用,不須要放在ready函數中。 wx.onMenuShareTimeline({ title: '', // 分享標題 link: '', // 分享連接,該連接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致 imgUrl: '', // 分享圖標 success: function () { // 用戶確認分享後執行的回調函數 } }); }); wx.error(function(res){ // config信息驗證失敗會執行error函數,如簽名過時致使驗證失敗,具體錯誤信息能夠打開config的debug模式查看,也能夠在返回的res參數中查看,對於SPA能夠在這裏更新簽名。 });
微信開發文檔微信