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 地址:   >>>>>>>>>>戳我、戳我、戳我、戳我、戳我<<<<<<<<<<<<

相关文章
相关标签/搜索