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