Explication détaillée et exemple de code pour implémenter la messagerie un-à-plusieurs dans l'applet WeChat
Le transfert de valeur et la notification entre les différentes interfaces de l'applet WeChat sont pénibles dans le cul. J'ai donc imité le centre de notification dans iOS et écrit un centre de notification similaire dans l'applet WeChat.
Le centre de notification peut : envoyer des messages un à plusieurs et transférer des objets. Très simple à utiliser.
Lors de son utilisation, enregistrez un nom de notification sur l'interface qui doit recevoir des messages. Ensuite, publiez simplement le nom de la notification sur l'interface où vous devez envoyer le message. Vous pouvez enregistrer le même nom de notification dans plusieurs interfaces. De cette façon, vous pouvez envoyer un à plusieurs messages.
Utilisation :
1 : Référence notification.js dans app.js
var notificationCenter = require('/utils/notification.js'); //这里请改为你的绝对路径
2 : Ajoutez app.js :
App({ onLaunch: function (){ this.notificationCenter = notificationCenter.center(); }, notificationCenter:null, })
3 : Enregistrez
PageA dans page.js pour recevoir des notifications .js :
var app = getApp(); Page({ onLoad:function(options){ app.notificationCenter.register("一个通知名称",this,"didReceviceAnyNotification"); }, didReceviceAnyNotification:function(name,content){ console.log("接收到了通知:",name, content); }, })
4 :
Fonction arbitraire de PageB.js
dans page.js qui envoie une notification
var app = getApp(); Page({ anyFunction:function(){ app.notificationCenter.post("通知名称",{ //任意通知object }) ; }, })
Implémentation :
Téléchargement du fichier : 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;
Merci d'avoir lu, j'espère que cela pourra aider tout le monde, merci pour votre soutien à ce site !
Pour plus d'articles liés à l'applet WeChat implémentant la messagerie un-à-plusieurs, veuillez faire attention au site Web PHP chinois !