ionic 跨界面操作

        项目中有这么一个需求:只要有通知就要在通知标签上显示红点,类似于微信的消息提示,这样就使得需要在全局,或者任何时候收到消息的时候,能更新消息标签上的小红点,那么就需要有一个类似于Android广播形式的机制来进行操作。


ionic 跨界面操作_第1张图片

我们使用的是百度推送插件,推送插件在(Myapp)里初始化,收到消息的时候,需要在myapp里通知界面进行UI更新,同时更新列表。

ioinc中有个Events 可以实现这个效果。

Events:事件注册  在任意一界面注册事件之后可在任意界面根据事件名称进行调用。

(参考:http://ionicframework.com/docs/api/util/Events/)


ionic 跨界面操作_第2张图片

Events 有三个方法 分别是:

this.events.publish () //注册Events事件

this.events.subscribe() //调用Eevents事件

this.events.unsubscribe() //注销Events事件

在需要进行ui更新的界面注册事件,如下:我是在tabs.ts里进行注册(当然你可以在任何需要被动通知的界面进行注册),

ionic 跨界面操作_第3张图片

在需要主动通知操作的界面只需要调用 subscribe事件即可。

也可以在多个界面同时注册多个事件,可以一次调用多个不同界面的事件,进行不同操作。


ionic 跨界面操作_第4张图片

注:界面每次调用Push是会就是触发ionViewDidLoad事件,调用Pop的时候则会销毁界面,调用ionViewWillUnload。所以注册Events事件的时候必须在界面销毁的时候把事件进行注销,不然下次调用则会重复执行Events中的注册的方法。

你可能感兴趣的:(ionic 跨界面操作)