JS微信分享很差寫?來封裝一下

微信開發這塊,做爲開發工程師來講,通常是避免不了的,也好像發現一些朋友寫微信分享都是在每一個頁面一大把一大把的代碼。git

代碼冗餘,即使是複製過來再改也很麻煩。github

以前本身封裝了一下js,今天來分享一下,但願能給看到的園友帶來一點思路,固然但願能幫忙一塊兒改進。微信

 

個人思路:微信開發

  1.能夠分享到四個地方QQ,朋友,朋友圈,微博,通常狀況下他們是一致的,能夠配置一個初始參數,賦值給它們四個ide

  2.若是出現不一致,由於前面已經賦值了初始參數,這時再把須要不一致的內容替換掉ui

 

實現主要代碼:this

setData: function(){
        var self = this;
        self.data = {
            title: self.title,
            desc: self.desc,
            link: self.link,
            imgUrl: self.imgUrl,
            type: self.type, // 分享類型,music、video或link,不填默認爲link
            dataUrl: self.dataUrl, // 若是type是music或video,則要提供數據連接,默認爲空
            success: self.success,
            cancel: self.cancel
        };
        //深度克隆
        self.QQData = JSON.stringify(self.data);
        self.QQData = JSON.parse(self.QQData);
        self.TimeLineData = JSON.stringify(self.data);
        self.TimeLineData = JSON.parse(self.TimeLineData);  
        self.WeiBoData = JSON.stringify(self.data);
        self.WeiBoData = JSON.parse(self.WeiBoData);   

      //反序列化
      self.QQData.success = self.success;
       self.TimeLineData.success = self.success;
          self.WeiBoData.success = self.success;
          self.QQData.cancel = self.cancel;
          self.TimeLineData.cancel = self.cancel;
          self.WeiBoData.cancel = self.cancel;spa

    }

wx.ready(function(){
  wx.showOptionMenu();
  if(self.data == '') self.setData();
  wx.onMenuShareQQ(self.QQData);
  wx.onMenuShareAppMessage(self.data);
  wx.onMenuShareTimeline(self.TimeLineData);
  wx.onMenuShareWeibo(self.WeiBoData);code

});blog

 

使用幫助:

var wxshare = require('wxshare.js');

 

若是分享的內容都一致

wxshare.link = '';
wxshare.desc = '';
wxshare.imgUrl = '';
wxshare.type = '';
wxshare.dataUrl = '';
wxshare.start();

 

若是有不一致,針對不一致的地方進行修改

wxshare.link = '';
wxshare.title = '';
wxshare.desc = '';
wxshare.imgUrl = '';

wxshare.setData();//必須加上
wxshare.TimeLineData.title = ''; 
wxshare.QQData.desc = '';
wxshare.start();

 

重點說明: setData()

若是所有的分享內容都同樣,直接執行start(), 判斷data參數空爲true,會執行setData(),
爲四個分享賦值:QQData data TimeLineData WeiboData, 然後初始化

若是有不一致,首次賦值後,直接調用setData(),爲四個參數賦值,以後再根據需求修改不一樣的對應參數,最後start()初始化。

 

--------------------------------------------------------------------------------------------------------------------------------------------

具體代碼 github 地址:   >>>>>>>>>>戳我、戳我、戳我、戳我、戳我<<<<<<<<<<<<

相關文章
相關標籤/搜索