Flutter:FCM 向多个不工作的设备发送通知

问题描述 投票:0回答:1

我已将我的项目连接到 firebase 以获取 FCM 通知,并构建此功能,以便在管理员按下特殊按钮时向我的应用程序的所有用户发送通知:

void sendNotificationToAllUsers() async {
    var url = Uri.parse('https://fcm.googleapis.com/fcm/send');
    const serverKey = 'XXXXXXXXXXXXXXXXXXXX';

    var headers = {
      'Content-Type': 'application/json',
      'Authorization': 'key=$serverKey',
    };

    var body = {
      'notification': {
        'title': 'Hey guys',
        'body': 'How are you?!',
      },
      'to': '/topics/all',
      'click_action' : 'FLUTTER_NOTIFICATION_CLICK'
    };

    try {
      var response = await http.post(
        url,
        headers: headers,
        body: jsonEncode(body),
      );
      if (response.statusCode == 200) {
        print('Notification sent successfully');
      } else {
        print('Failed to send notification: ${response.reasonPhrase}');
      }
    } catch (e) {
      print('Failed to send notification: $e');
    }
  }

我已将此脚本添加到 AndroidManafist.xml 中:

            <intent-filter>
                <action android:name="FLUTTER_NOTIFICATION_CLICK"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>

但它在控制台中打印:

Notification sent successfully
而不发送任何通知!!!

我确实进行了搜索,但没有发现有关从应用程序而不是从 Firebase 控制台一次推送发送多个设备的想法!!!

如有任何帮助,我们将不胜感激。

flutter push-notification firebase-cloud-messaging
1个回答
0
投票

从评论看来,您的客户实际上并未订阅“/topics/all 主题”。这不是自动操作,但您必须在客户端代码中执行此操作。

有关如何执行此操作的说明,请参阅有关 订阅主题的文档。

© www.soinside.com 2019 - 2024. All rights reserved.