Flutter云消息和通知
Flutter cloud message and notification
我正在尝试使用云消息构建功能 notification.First 我尝试让 FCM 自动显示通知及其工作并接收所有消息 times.but 当单击通知时它只会弹出到主 route.I 想要一个功能,比如我可以弹出到特定路由或弹出多个路由(比如首先弹出主路由,然后在顶部弹出聊天室路由,使用户可以按 "back" 按钮返回主路由)。然后我尝试与Flutter Local Notifications Plugin有关。但似乎这个库在应用程序终止时不显示通知仅在应用程序处于后台或前台时显示。谁有更好的方法来做到这一点?
您首先需要配置应用程序以接收点击事件(配置 FLUTTER_NOTIFICATION_CLICK),如 https://pub.dev/packages/firebase_messaging#android-integration
中所述
然后您需要配置应用程序以接收来自通知的数据:
class _HomePageState extends State<HomePage> {
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
@override
void initState() {
super.initState();
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
Navigator.of(context).popUntil(ModalRoute.withName('/'));
Navigator.of(context).pushNamed('AlternativeRouteName');
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
Navigator.of(context).pushNamed('AlternativeRouteName');
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
Navigator.of(context).popUntil(ModalRoute.withName('/'));
Navigator.of(context).pushNamed('AlternativeRouteName');
},
);
(阅读本节以了解有关 iOS 和 Android https://pub.dev/packages/firebase_messaging#receiving-messages 中触发的事件的更多信息)
然后就可以根据Message的数据触发正确的Route...
我正在尝试使用云消息构建功能 notification.First 我尝试让 FCM 自动显示通知及其工作并接收所有消息 times.but 当单击通知时它只会弹出到主 route.I 想要一个功能,比如我可以弹出到特定路由或弹出多个路由(比如首先弹出主路由,然后在顶部弹出聊天室路由,使用户可以按 "back" 按钮返回主路由)。然后我尝试与Flutter Local Notifications Plugin有关。但似乎这个库在应用程序终止时不显示通知仅在应用程序处于后台或前台时显示。谁有更好的方法来做到这一点?
您首先需要配置应用程序以接收点击事件(配置 FLUTTER_NOTIFICATION_CLICK),如 https://pub.dev/packages/firebase_messaging#android-integration
中所述然后您需要配置应用程序以接收来自通知的数据:
class _HomePageState extends State<HomePage> {
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
@override
void initState() {
super.initState();
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
Navigator.of(context).popUntil(ModalRoute.withName('/'));
Navigator.of(context).pushNamed('AlternativeRouteName');
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
Navigator.of(context).pushNamed('AlternativeRouteName');
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
Navigator.of(context).popUntil(ModalRoute.withName('/'));
Navigator.of(context).pushNamed('AlternativeRouteName');
},
);
(阅读本节以了解有关 iOS 和 Android https://pub.dev/packages/firebase_messaging#receiving-messages 中触发的事件的更多信息)
然后就可以根据Message的数据触发正确的Route...