微信小程序API交互的自定義封裝

1英融,起因


哪天,正在螞蟻森林瘋狂偷能量的我被boss叫過去歇式,告知我司要做一個(gè)線上直播公開課功能的微信小程序驶悟,博主第一次寫小程序,復(fù)習(xí)了下文檔材失,看了看騰訊云直播sdk痕鳍,開工了。
寫著寫著就發(fā)現(xiàn)不對(duì)勁了, 這里面wx.showToast笼呆,wx.showModal熊响,這一類的調(diào)用太多了,每次都寫一遍太特么麻煩了诗赌,就拿wx.showToast做例子汗茄,產(chǎn)品要求是duration為2000ms,默認(rèn)值是1500ms铭若,且有時(shí)候不需要icon圖標(biāo)洪碳,有時(shí)候又需要,所以每次都要如下調(diào)用

wx.showToast({
  title: '創(chuàng)建成功',
  icon: 'none',
  duration: 2000
})

不但麻煩叼屠,而且代碼看著很糟糕偶宫,所以博主決定二次封裝一下。

2环鲤,優(yōu)化成果


經(jīng)過博主封裝后纯趋,代碼如下

// wx.showToast優(yōu)化前調(diào)用
wx.showToast({
  title: '創(chuàng)建成功',
  icon: 'none',
  duration: 2000
});

// wx.showToast優(yōu)化后調(diào)用
FN.Toast("創(chuàng)建成功");
// wx.showModal優(yōu)化前調(diào)用
wx.showModal({
  title: '溫馨提示',
  content: '確認(rèn)更換賬號(hào)嗎?',
  success (res) {
    if (res.confirm) {
      console.log('用戶點(diǎn)擊確定')
    } else if (res.cancel) {
      console.log('用戶點(diǎn)擊取消')
    }
  }
});

// wx.showModal優(yōu)化后調(diào)用
FN.Confirm("確認(rèn)更換賬號(hào)嗎冷离?")
.then(res => {
    console.log('用戶點(diǎn)擊確定')
 })
.catch(error => {
    console.log('用戶點(diǎn)擊取消')
});

3吵冒,實(shí)現(xiàn)思路


定義一個(gè)公共的public.js,在里面寫上常用的方法西剥,用一個(gè)常量承載痹栖,然后通過module.exports暴露出去,在需要的地方接收瞭空,而其中比如wx.showModal揪阿,wx.login,這些需要回調(diào)來處理的方法咆畏,使用了Promise實(shí)現(xiàn)了鏈?zhǔn)秸{(diào)用南捂。

4,完整代碼


文件名:public.js

const publicFn = {
  /**
  * Loading轉(zhuǎn)圈圈
  * @param {nunber} mask - 不傳默認(rèn)不顯示透明蒙層
  * @param {string} msg - 提示語 默認(rèn)值:加載中
  */
  Loading (mask, msg){
    let Mask = mask ? true : false;
    let Msg = msg ? msg : "加載中"
    wx.showLoading({
      title: Msg,
      mask: Mask
    })
  },
  /**
  * Loading取消轉(zhuǎn)圈圈
  */
  LoadingOff (){
    wx.hideLoading();
  },
  /**
  * Toast提示
  * @param {string} msg - 提示內(nèi)容
  * @param {string} icon - icon圖標(biāo) 成功success 加載中l(wèi)oading 無樣式none
  * @param {number} time - 提示存在時(shí)長(zhǎng)
  */
  Toast (msg, icon, time){
    let Icon = icon === 1 ? "success" : "none";
    wx.showToast({
      title: msg,
      icon: Icon,
      duration: time || 2000
    })
  },
  /**
  * 帶確認(rèn)的提示框
  * @param {string} msg - 提示內(nèi)容
  */
  Alert (msg){
    return new Promise((resolve, reject) => {
      wx.showModal({
        title: '溫馨提示',
        content: msg,
        showCancel:false,
        confirmColor:"#007AFF",
        success (res) {
         // 此彈窗只有確認(rèn)鍵旧找,沒有取消鍵溺健,所以只寫了resolve沒有reject
          resolve(res);
        }
      })
    })
  },
  /**
  * 帶確認(rèn)和取消的提示框
  * @param {string} msg - 提示內(nèi)容
  */
  Confirm (msg){
    return new Promise((resolve, reject) => {
      wx.showModal({
        title: '溫馨提示',
        content: msg,
        cancelColor:"#000000",
        confirmColor:"#007AFF",
        success (res) {
          if (res.confirm) {
            resolve(res);
          }else if (res.cancel) {
            reject(res)
          }
        }
      })
    })
  },
  /**
  * 微信登陸 wx.login
  */
  wxLogin () {
    return new Promise((resolve, reject) => {
      wx.login({
        success (res) {
          if (res.code) {
            resolve(res.code)
          } else {
            reject(res.errMsg);
          }
        }
      })
    });
  }
}

module.exports = publicFn;

使用方法:在你需要調(diào)用的地方的js文件頂部引入

//路徑根據(jù)自己項(xiàng)目文件位置改變
const FN = require('../publicFn/public');

調(diào)用語法參考目錄2


如果看了覺得有幫助的,我是@鵬多多11997110103钮蛛,歡迎 點(diǎn)贊 關(guān)注 評(píng)論鞭缭;
END

往期文章

個(gè)人主頁

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者魏颓。
  • 序言:七十年代末岭辣,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子甸饱,更是在濱河造成了極大的恐慌沦童,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異搞动,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)渣刷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門鹦肿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人辅柴,你說我怎么就攤上這事箩溃。” “怎么了碌嘀?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵涣旨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我股冗,道長(zhǎng)霹陡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任止状,我火速辦了婚禮烹棉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘怯疤。我一直安慰自己浆洗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布集峦。 她就那樣靜靜地躺著伏社,像睡著了一般。 火紅的嫁衣襯著肌膚如雪塔淤。 梳的紋絲不亂的頭發(fā)上摘昌,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音高蜂,去河邊找鬼第焰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛妨马,可吹牛的內(nèi)容都是我干的挺举。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼烘跺,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼湘纵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滤淳,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤梧喷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铺敌,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡汇歹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了偿凭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片产弹。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖弯囊,靈堂內(nèi)的尸體忽然破棺而出痰哨,到底是詐尸還是另有隱情,我是刑警寧澤匾嘱,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布斤斧,位于F島的核電站,受9級(jí)特大地震影響霎烙,放射性物質(zhì)發(fā)生泄漏撬讽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一悬垃、第九天 我趴在偏房一處隱蔽的房頂上張望锐秦。 院中可真熱鬧,春花似錦盗忱、人聲如沸酱床。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扇谣。三九已至,卻和暖如春闲昭,著一層夾襖步出監(jiān)牢的瞬間罐寨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工序矩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鸯绿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓簸淀,卻偏偏與公主長(zhǎng)得像瓶蝴,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子租幕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容