WxNotificationCenter - 微信小程序通知广播模式类,降低小程序开发的耦合度。
类iOS中的NSNotificationCenter模式
github地址
信息
来自微信小程序开发论坛 weappdev.com/
垂直微信小程序开发论坛
版本信息
version 0.1
作用
使用
copy 文件
WxNotificationCenter.js到你的开发目录中-
引入
WxNotificationCenter.js在你需要的js中var WxNotificationCenter = require("../../WxNotificationCenter/WxNotificationCenter.js") -
注册通知
// 最好在onLoad中进行 /** * addNotification * 注册通知对象方法 * * 参数: * name: 注册名,一般let在公共类中 * selector: 对应的通知方法,接受到通知后进行的动作 * observer: 注册对象,指Page对象,可选,不填写的话在remove中会失效 */ var that = this WxNotificationCenter.addNotification("testNotificationName",that.testNotificationFn,that) -
发送通知
//发送通知 WxNotificationCenter.postNotificationName("testNotificationName"); -
移除通知
// 移除通知在本也完成 WxNotificationCenter.removeNotification("testTabNotificationName",that)
特性
源码分析
-
var __notices = [];存放通知数组
-
addNotification注册方法* addNotification * 注册通知对象方法 * * 参数: * name: 注册名,一般let在公共类中 * selector: 对应的通知方法,接受到通知后进行的动作 * observer: 注册对象,指Page对象 */ -
postNotificationName发送方法/** * postNotificationName * 发送通知方法 * * 参数: * name: 已经注册了的通知 * info: 携带的参数 */ function postNotificationName(name, info) -
removeNotification移除方法/** * removeNotification * 移除通知方法 * * 参数: * name: 已经注册了的通知 * observer: 移除的通知所在的Page对象 */ function removeNotification(name,observer)
源码
icindy/WxNotificationCenter/blob/master/WxNotificationCenter/WxNotificationCenter.js
// 存放
var __notices = [];
var isDebug = true;
/**
* addNotification
* 注册通知对象方法
*
* 参数:
* name: 注册名,一般let在公共类中
* selector: 对应的通知方法,接受到通知后进行的动作
* observer: 注册对象,指Page对象
*/
function addNotification(name, selector, observer) {
if (name && selector) {
if(!observer){
console.log("addNotification Warning: no observer will can't remove notice");
}
console.log("addNotification:" + name);
var newNotice = {
name: name,
This file has been truncated. show original
拓展阅读
- 什么叫做通知广播模式
本类借鉴iOS开发中的NSNotificationCenter的消息模式进行开发
可阅读: 细说KVO & KVC & NSNotificationCenter那些事
来源
来自微信小程序开发论坛 weappdev.com/
垂直微信小程序开发论坛