本文主要是介绍Flutter中的NotificationCenter和EventBus(超级简单!),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
废话不都说,123,直接上连接
Github: https://github.com/VictorZhang2014/NotificationCentre
Flutter的pub:https://pub.dev/packages/notification_centre
这么多年了,Flutter要想想自己的问题,为什么不出一个官方的版本呢?所以在此博主就免费献给大家了。 -- 摘自李佳琦直播Show
1.NotificationCenter
不用多说,大家也知道是什么,iOS中的神器,可以在整个应用程序中自由的广播消息,支持一次广播给多个订阅者。
Android中的第三方开源的EventBus也是安卓开发的神器!贯穿整个安卓开发。
使用方式都是,在整个应用程序中有多个订阅,订阅回调里可以接受传递过来的参数,用完需要释放掉。
2.介绍此Flutter库如何使用(超级简单!!!)
比如在一个StatefulWidget
页面里,或者StatelessWidget
页面里,去订阅/监听,类名和函数名与原生NotificationCenter一致。
- 第一个参数是字符串,传入任何你希望接收/监听的名称
- 第二个参数是当前this对象,在
StatefulWidget
或StatelessWidget
都会有 - 第三参数回调函数,携带有参数,参数可以是字典,也可以是数组,或者其他类型
void initState() { super.initState(); // 监听/订阅NotificationCenter().addObserver(NOTIFICATION_NAME_USER_SIGNED_IN, this, (data) {// 当登录后回调到这里});}
页面释放时,需要移除监听对象
void dispose() { NotificationCenter().removeObserver(NOTIFICATION_NAME_USER_SIGNED_IN, this);super.dispose();}
广播/发送就非常简单了
- 第一个参数是字符串,传入任何你希望广播/发送出去的名称
- 第二参数是携带的参数,参数可以是字典,也可以是数组,或者其他类型,你想传什么类型都可以,因为它是动态类型
NotificationCenter().postNotification(NOTIFICATION_NAME_PURCHASE_COMPLETED, data: {"data": YOUR_DATA, "type": "completed"},);
3.安装到Flutter项目里
方式1:
flutter pub add notification_centre
方式2:
dependencies:notification_centre: ^0.0.3
4.NotificationCenter内置三个NotificationName
- NOTIFICATION_NAME_USER_SIGNED_IN,表示登录成功
- NOTIFICATION_NAME_USER_SIGNED_OUT,表示退出登录
- NOTIFICATION_NAME_PURCHASE_COMPLETED,表示购买完成
- 大家可以自定义属于自己业务的字符串名称
这篇关于Flutter中的NotificationCenter和EventBus(超级简单!)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!