使用场景:在开发中通常会遇到这样的场景:在一个新打开的页面中进行了某些操作后,原先打开的页面中的某些数据需要改变,而又不能刷新页面。这时候就要用到一个消息广播的功能,类似于iOS的 NSNotificationCenter。
作用:
方法定义
在小程序app.js中增加以下内容
_listen_fns: {},
noticeListen: function (key, callback) {
    this._listen_fns[key] = this._listen_fns[key] ? this._listen_fns[key] : [];
    this._listen_fns[key].push(callback);
},
noticePublish: function (key, data) {
    var _listen_fns = this._listen_fns;
    if (_listen_fns[key]) {
        for (var i in _listen_fns[key]) {
            if (typeof _listen_fns[key][i] == "function") {
                try {
                    _listen_fns[key][i](data);
                } catch (e) {
                    console.log("publish error");
                }
            }
        }
    }
}使用方法
方法定义(在需要接收广播的页面)
// test 为定义的名称,data 为传值
app.noticeListen("test", function (data) {
    console.log(data)
})广播发布(在通知发起页面)
app.noticePublish("test", "message")注:以上使用的app通常在页面中定义: var app = getApp()