JS微信分享不好写?来封装一下

微信开发这块,作为开发工程师来说,一般是避免不了的,也好像发现一些朋友写微信分享都是在每个页面一大把一大把的代码。

依安网站建设公司成都创新互联,依安网站设计制作,有大型网站制作公司丰富经验。已为依安1000多家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的依安做网站的公司定做!

代码冗余,即便是复制过来再改也很麻烦。

之前自己封装了一下js,今天来分享一下,希望能给看到的园友带来一点思路,当然希望能帮忙一起改进。

我的思路:

  1.可以分享到四个地方QQ,朋友,朋友圈,微博,一般情况下他们是一致的,可以配置一个初始参数,赋值给它们四个

  2.如果出现不一致,因为前面已经赋值了初始参数,这时再把需要不一致的内容替换掉

实现主要代码:

 
 
  1. setData: function(){
  2.         var self = this;
  3.         self.data = {
  4.             title: self.title,
  5.             desc: self.desc,
  6.             link: self.link,
  7.             imgUrl: self.imgUrl,
  8.             type: self.type, // 分享类型,music、video或link,不填默认为link
  9.             dataUrl: self.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空
  10.             success: self.success,
  11.             cancel: self.cancel
  12.         };
  13.         //深度克隆
  14.         self.QQData = JSON.stringify(self.data);
  15.         self.QQData = JSON.parse(self.QQData);
  16.         self.TimeLineData = JSON.stringify(self.data);
  17.         self.TimeLineData = JSON.parse(self.TimeLineData);  
  18.         self.WeiBoData = JSON.stringify(self.data);
  19.         self.WeiBoData = JSON.parse(self.WeiBoData);   
  20.       //反序列化
  21.               self.QQData.success = self.success;
  22.                self.TimeLineData.success = self.success;
  23.           self.WeiBoData.success = self.success;
  24.           self.QQData.cancel = self.cancel;
  25.           self.TimeLineData.cancel = self.cancel;
  26.           self.WeiBoData.cancel = self.cancel;
  27.     }
  28. wx.ready(function(){
  29.                   wx.showOptionMenu();
  30.                   if(self.data == '') self.setData();
  31.                   wx.onMenuShareQQ(self.QQData);
  32.                   wx.onMenuShareAppMessage(self.data);
  33.                   wx.onMenuShareTimeline(self.TimeLineData);
  34.                   wx.onMenuShareWeibo(self.WeiBoData);
  35.             });

 使用帮助:

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

如果分享的内容都一致

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

如果有不一致,针对不一致的地方进行修改

 
 
  1. wxshare.link = '';
  2. wxshare.title = '';
  3. wxshare.desc = '';
  4. wxshare.imgUrl = '';
  5. wxshare.setData();//必须加上
  6. wxshare.TimeLineData.title = ''; 
  7. wxshare.QQData.desc = '';
  8. wxshare.start();

重点说明: setData()

如果全部的分享内容都一样,直接执行start(), 判断data参数空为true,会执行setData(),
为四个分享赋值:QQData data TimeLineData WeiboData, 而后初始化

如果有不一致,***赋值后,直接调用setData(),为四个参数赋值,之后再根据需求修改不同的对应参数,***start()初始化。

当前题目:JS微信分享不好写?来封装一下
文章来源:http://www.csdahua.cn/qtweb/news44/402944.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网