项目中有这么一个需求:只要有通知就要在通知标签上显示红点,类似于微信的消息提示,这样就使得需要在全局,或者任何时候收到消息的时候,能更新消息标签上的小红点,那么就需要有一个类似于Android广播形式的机制来进行操作。
我们使用的是百度推送插件,推送插件在(Myapp)里初始化,收到消息的时候,需要在myapp里通知界面进行UI更新,同时更新列表。
ioinc中有个Events 可以实现这个效果。
Events:事件注册 在任意一界面注册事件之后可在任意界面根据事件名称进行调用。
(参考:http://ionicframework.com/docs/api/util/Events/)
Events 有三个方法 分别是:
this.events.publish () //注册Events事件
this.events.subscribe() //调用Eevents事件
this.events.unsubscribe() //注销Events事件
在需要进行ui更新的界面注册事件,如下:我是在tabs.ts里进行注册(当然你可以在任何需要被动通知的界面进行注册),
在需要主动通知操作的界面只需要调用 subscribe事件即可。
也可以在多个界面同时注册多个事件,可以一次调用多个不同界面的事件,进行不同操作。
注:界面每次调用Push是会就是触发ionViewDidLoad事件,调用Pop的时候则会销毁界面,调用ionViewWillUnload。所以注册Events事件的时候必须在界面销毁的时候把事件进行注销,不然下次调用则会重复执行Events中的注册的方法。