【小程序】小程序消息广播

小程序 小铁匠 2018-09-07

使用场景:在开发中通常会遇到这样的场景:在一个新打开的页面中进行了某些操作后,原先打开的页面中的某些数据需要改变,而又不能刷新页面。这时候就要用到一个消息广播的功能,类似于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()

------ 本文结束 感谢阅读 ------
上一篇: 没有了~