微信开发之JS微信分享不好写?来封装一下
安安 2017-10-23 来源 :网络 阅读 1030 评论 0

摘要:微信开发这块,作为开发工程师来说,一般是避免不了的,也好像发现一些朋友写微信分享都是在每个页面一大把一大把的代码。 代码冗余,即便是复制过来再改也很麻烦。 之前自己封装了一下js,今天来分享一下,希望能给看到的园友带来一点思路,当然希望能帮忙一起改进。

摘要: 微信开发这块,作为开发工程师来说,一般是避免不了的,也好像发现一些朋友写微信分享都是在每个页面一大把一大把的代码。 代码冗余,即便是复制过来再改也很麻烦。 之前自己封装了一下js,今天来分享一下,希望能给看到的园友带来一点思路,当然希望能帮忙一起改进。

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

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

之前自己封装了一下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.   //反序列化 

22.           self.QQData.success = self.success; 

23.            self.TimeLineData.success = self.success; 

24.           self.WeiBoData.success = self.success; 

25.           self.QQData.cancel = self.cancel; 

26.           self.TimeLineData.cancel = self.cancel; 

27.           self.WeiBoData.cancel = self.cancel; 

28.     } 

29.  

30.  

31. wx.ready(function(){ 

32.                 wx.showOptionMenu(); 

33.                 if(self.data == '') self.setData(); 

34.                 wx.onMenuShareQQ(self.QQData); 

35.                 wx.onMenuShareAppMessage(self.data); 

36.                 wx.onMenuShareTimeline(self.TimeLineData); 

37.                 wx.onMenuShareWeibo(self.WeiBoData); 

38.             }); 

使用帮助:

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()初始化。


希望这篇微信开发文章可以帮助到你。总之,同学们,你想要的职坐标微信开发频道都能找到!

本文由 @安安 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程