使用WxNotificationCenter 在微信小程序中實現通知廣播
做過客戶端開發的同學,肯定都了解過iOS 的NSNotificationCenter 或者Android 的廣播機制,這個功能主要解決的問題是:
頁面之間的廣播通知,比如從A 頁面跳轉到B 頁面,B頁面完成相關邏輯需要通知A頁面刷新數據(並傳值)。
小程序廣播通知
我在進行「一個程序手冊」開發的時候,就碰到了相關的需求:
從文章列表頁面進入文章詳情頁的時候,用戶進行了點贊或者留言操作。然後再返回了列表頁的時候,列表頁的點贊數,是否點贊,留言數都沒有變化,而這樣是不對的,如果要保持一致,只有從服務器刷新數據,這樣體驗就更不好了。
WxNotificationCenter 詳細介紹
已經有第三方開發者為小程序開發的WxNotificationCenter就實現了該功能:
1. 獲取到WxNotificationCenter 將WxNotificationCenter.js 文件加入項目目錄下
2. 頁面中導入
var WxNotificationCenter = require('../../../util/WxNotificationCenter.js')
3. 文章列表頁和詳情頁面都註冊,移除通知,以及處理通知
onLoad: function () {
//注册通知
var that = this
WxNotificationCenter.addNotification('articleChange', that.onArticleChange, that)
},
onUnload: function () {
//移除通知
var that = this
WxNotificationCenter.removeNotification('articleChange', that)
},
//通知处理
onArticleChange: function (newArticle) {
//更新数据
this.setData({
article:newArticle
})
},
4. 當用戶點贊文章或者評論文章之後,發送通知
//发送新的文章
WxNotificationCenter.postNotificationName('articleChange', newArticle);
WxNotificationCenter 下載和體驗
下載,請到GitHub下載:WxNotificationCenter
Demo,請掃描一個程序手冊: