JS微信分享不好寫?來封裝一下
微信開發(fā)這塊,作為開發(fā)工程師來說,一般是避免不了的,也好像發(fā)現(xiàn)一些朋友寫微信分享都是在每個頁面一大把一大把的代碼。
代碼冗余,即便是復制過來再改也很麻煩。
之前自己封裝了一下js,今天來分享一下,希望能給看到的園友帶來一點思路,當然希望能幫忙一起改進。
我的思路:
1.可以分享到四個地方QQ,朋友,朋友圈,微博,一般情況下他們是一致的,可以配置一個初始參數(shù),賦值給它們四個
2.如果出現(xiàn)不一致,因為前面已經賦值了初始參數(shù),這時再把需要不一致的內容替換掉
實現(xiàn)主要代碼:
- 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,則要提供數(shù)據(jù)鏈接,默認為空
- 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;
- }
- 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);
- });
使用幫助:
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()
如果全部的分享內容都一樣,直接執(zhí)行start(), 判斷data參數(shù)空為true,會執(zhí)行setData(),
為四個分享賦值:QQData data TimeLineData WeiboData, 而后初始化
如果有不一致,***賦值后,直接調用setData(),為四個參數(shù)賦值,之后再根據(jù)需求修改不同的對應參數(shù),***start()初始化。