Ausführliche Erklärung und Beispielcode für die Implementierung von One-to-Many-Messaging im WeChat-Applet
Die Werteübertragung und Benachrichtigungen zwischen verschiedenen Schnittstellen im WeChat-Applet sind mühsam im Arsch. Deshalb habe ich das Benachrichtigungscenter in iOS nachgeahmt und ein ähnliches Benachrichtigungscenter im WeChat-Applet geschrieben.
Das Benachrichtigungscenter kann: Nachrichten eins zu viele senden und Objekte übertragen. Sehr einfach zu bedienen.
Registrieren Sie bei der Verwendung einen Benachrichtigungsnamen auf der Schnittstelle, die Nachrichten empfangen muss. Geben Sie dann einfach den Namen der Benachrichtigung auf der Schnittstelle ein, an die Sie die Nachricht senden möchten. Sie können denselben Benachrichtigungsnamen in mehreren Schnittstellen registrieren. Auf diese Weise können Sie Nachrichten einzeln an mehrere senden.
Verwendung:
1: Referenz notification.js in app.js
var notificationCenter = require('/utils/notification.js'); //这里请改为你的绝对路径
2: Fügen Sie app.js hinzu:
App({ onLaunch: function (){ this.notificationCenter = notificationCenter.center(); }, notificationCenter:null, })
3: Registrieren Sie
PageA in page.js, um Benachrichtigungen zu erhalten.js:
var app = getApp(); Page({ onLoad:function(options){ app.notificationCenter.register("一个通知名称",this,"didReceviceAnyNotification"); }, didReceviceAnyNotification:function(name,content){ console.log("接收到了通知:",name, content); }, })
4:
PageB.js beliebige Funktion
in page.js, die eine Benachrichtigung sendet
var app = getApp(); Page({ anyFunction:function(){ app.notificationCenter.post("通知名称",{ //任意通知object }) ; }, })
Implementierung:
Dateidownload: http://xiazai.jb51.net/201702/yuanma/wxappNotificationCenter-master( jb51.net ).rar
var notificationCenter = { notificationCenter:{}, // 向通知中心注册一个监听者。 // name: 监听的通知名称 // observer: 监听者 // action: 监听者收通知时调用的方法名, // func: 监听者收到通知时调用的函数, // action func 2选1 register:function(name,observer,action,func){ if (!name || !observer) return; if (!action && !func) return; console.log("注册通知:",name,observer); var center = this.notificationCenter; var objects = center[name]; if (!objects){ objects = []; } this.remove(name,observer); objects.push({ observer:observer, action:action, func:func }); center[name] = objects; }, // 从通知中心移除一个监听者 remove:function(name,observer){ if (!name || !observer) return; var center = this.notificationCenter; var objects = center[name]; if (!objects){ return; } var idx; var object; for(idx = 0;idx<objects.length;idx++){ var obj = objects[idx]; if (obj.observer == observer){ object = obj; break; } } if (object){ objects.splice(idx,1); } center[name] = objects; }, // 通过通知中心发出通知 // name: 通知名称 // notification: 通知内容 post:function(name,notification){ if (!name) return; console.log("准备发出通知:",name,notification); var center = this.notificationCenter; var objects = center[name]; if (!objects){ objects = []; } objects.forEach(function(object){ var observer = object.observer; var action = object.action; var func = object.func; if (observer && action){ func = observer[action]; } func(notification); }); console.log("完成向 ",objects.length," 个监听者发出通知:",name); } } function center(){ return notificationCenter; } module.exports.center = center;
Vielen Dank fürs Lesen, ich hoffe, es kann allen helfen, vielen Dank für Ihre Unterstützung dieser Website!
Weitere Artikel zum WeChat-Applet zur Implementierung von One-to-Many-Messaging finden Sie auf der chinesischen PHP-Website!