【问题标题】:How can I prevent to display FCM notification on Flutter app background?如何防止在 Flutter 应用背景上显示 FCM 通知?
【发布时间】:2021-08-30 05:54:56
【问题描述】:
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  print('Handling a background message ${message.messageId}');
}
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

我可以使用这些 sn-p 代码显示背景通知。但是有什么方法可以不在后台显示一些特定的通知吗?

例如我不想用data = {title = "call"}显示通知

【问题讨论】:

    标签: firebase flutter dart firebase-cloud-messaging


    【解决方案1】:

    在您的 _firebaseMessagingBackgroundHandler 中添加条件,例如

        Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
    
    if(message.data["title"]=="Call")
    {
    // show nothing
    }
    else
    {
    // show notifications
    }
          
        }
    

    【讨论】:

    • _firebaseMessagingBackgroundHandler函数中我们没有实现任何显示通知,如果我们将空函数传递给FirebaseMessaging.onBackgroundMessage,则会自动显示
    • 此方法与本主题无关,如果您完全不编写此函数,则会出现通知!所以它没有帮助......
    【解决方案2】:

    您必须从发送方设备发送仅数据通知

    await http.post(
              Uri.parse('https://fcm.googleapis.com/fcm/send'),
              headers: <String, String>{
                'Content-Type': 'application/json; charset=UTF-8',
                'Authorization': 'key=$serverKey',
              },
              body: jsonEncode(
                <String, dynamic>{
                  'data': <String, dynamic>{
                    'id': '2',
                    'status': 'done'
                  },
                  'to': userToken,
                  "collapse_key": uid,
                },
              ),
            );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-25
      • 2018-01-30
      • 2023-01-02
      • 2020-11-25
      • 1970-01-01
      • 2021-08-09
      • 2015-08-28
      • 2021-07-02
      相关资源
      最近更新 更多