首页 > 解决方案 > 在 Flutter 中在整个应用程序中广播 fcm 通知

问题描述

问题是我想从不同的视图接收 FCM 通知,因为我有通知铃图标,该图标在收到通知时更新。我有配置文件视图、登陆视图、仪表板视图等。所以我有徽章需要更新。但是,我无法使用 Stream 或 Notifier 接收广播。我唯一的选择是在这些页面中的每一个中添加一个大行。IE

_firebaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) async {
    print("onMessage: $message");
    setState(() {
      counter++;
    });

    _newNotification = true;
    _showNotificationWithDefaultSound(message.toString());
  },
  onBackgroundMessage: myBackgroundMessageHandler,
  onLaunch: (Map<String, dynamic> message) async {
    setState(() {
      counter++;
    });
    print("onLaunch: $message");
  },
  onResume: (Map<String, dynamic> message) async {
    setState(() {
      counter++;
    });
    print("onResume: $message");
  },
);

而且我还需要添加几个函数来让它工作。所以我的问题是你如何用尽可能少的行来接收它。因为我尝试了流广播,它只适用于单页,我不能从另一个页面收听。任何人如果他们有这个问题,请分享。所有在互联网上,我都得到了这个解决方案,它不适用于我。

   void initState() {
     super.initState();
     print("Creating a sample stream...");
     Stream<String> stream = new Stream.fromFuture(getData());
     print("Created the stream");
     stream.listen((data) {
     print("DataReceived: "+data);
   }, onDone: () {
     print("Task Done");
   }, onError: (error) {
     print("Some Error");
   });

   print("code controller is here");
 }

从这个链接这是一个很好的例子

标签: flutter

解决方案


推荐阅读