JS微信分享不好寫(xiě)?來(lái)封裝一下
微信開(kāi)發(fā)這塊,作為開(kāi)發(fā)工程師來(lái)說(shuō),一般是避免不了的,也好像發(fā)現(xiàn)一些朋友寫(xiě)微信分享都是在每個(gè)頁(yè)面一大把一大把的代碼。
代碼冗余,即便是復(fù)制過(guò)來(lái)再改也很麻煩。
之前自己封裝了一下js,今天來(lái)分享一下,希望能給看到的園友帶來(lái)一點(diǎn)思路,當(dāng)然希望能幫忙一起改進(jìn)。
我的思路:
1.可以分享到四個(gè)地方QQ,朋友,朋友圈,微博,一般情況下他們是一致的,可以配置一個(gè)初始參數(shù),賦值給它們四個(gè)
2.如果出現(xiàn)不一致,因?yàn)榍懊嬉呀?jīng)賦值了初始參數(shù),這時(shí)再把需要不一致的內(nèi)容替換掉
實(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, // 分享類(lèi)型,music、video或link,不填默認(rèn)為link
- dataUrl: self.dataUrl, // 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空
- 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');
如果分享的內(nèi)容都一致
wxshare.link = ''; wxshare.desc = ''; wxshare.imgUrl = ''; wxshare.type = ''; wxshare.dataUrl = ''; wxshare.start();
如果有不一致,針對(duì)不一致的地方進(jìn)行修改
- wxshare.link = '';
- wxshare.title = '';
- wxshare.desc = '';
- wxshare.imgUrl = '';
- wxshare.setData();//必須加上
- wxshare.TimeLineData.title = '';
- wxshare.QQData.desc = '';
- wxshare.start();
重點(diǎn)說(shuō)明: setData()
如果全部的分享內(nèi)容都一樣,直接執(zhí)行start(), 判斷data參數(shù)空為true,會(huì)執(zhí)行setData(),
為四個(gè)分享賦值:QQData data TimeLineData WeiboData, 而后初始化
如果有不一致,***賦值后,直接調(diào)用setData(),為四個(gè)參數(shù)賦值,之后再根據(jù)需求修改不同的對(duì)應(yīng)參數(shù),***start()初始化。