解決微信二次分享bug

微信分享網頁後,再次點擊微信分享的內部會自動在網址後拼接&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能夠在這裏更新簽名。
});

微信開發文檔微信

相關文章
相關標籤/搜索