You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何在终端打印PHP推送的Topic通知内容

如何在Flutter中打印PHP通过Topic推送的通知内容到终端

要将PHP通过Firebase Topic推送的通知内容输出到Flutter终端,只需在Firebase消息监听的回调中添加打印语句,直接输出收到的RemoteMessage对象或其字段即可。以下是针对你现有代码的修改方案:

1. 应用前台收到通知时打印

在FirebaseMessaging.onMessage.listen回调的最开头添加打印逻辑,输出完整消息和关键字段:

FirebaseMessaging.onMessage.listen((RemoteMessage message) {
  // 打印完整通知消息
  print('前台收到Topic推送通知: ${message.toString()}');
  // 打印自定义数据(PHP推送的data字段)
  print('通知自定义数据: ${message.data}');
  // 打印通知标题和内容(如果存在)
  if (message.notification != null) {
    print('通知标题: ${message.notification!.title}');
    print('通知内容: ${message.notification!.body}');
  }

  // 原有的通知处理逻辑...
  if (message.data != null) {
    var data = message.data;
    var notif = message.notification;
    // ...你的原有代码
  }
});

2. 点击后台通知打开应用时打印

在FirebaseMessaging.onMessageOpenedApp.listen回调中添加打印:

FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) async {
  // 打印点击通知收到的消息
  print('点击后台通知打开应用,收到消息: ${message.toString()}');
  print('通知自定义数据: ${message.data}');
  if (message.notification != null) {
    print('通知标题: ${message.notification!.title}');
    print('通知内容: ${message.notification!.body}');
  }

  // 原有的处理逻辑...
  if (message.data != null) {
    var data = message.data;
    var notif = message.notification;
    // ...你的原有代码
  }
  setPrefrenceBool(ISFROMBACK, false);
});

3. 冷启动点击通知时打印

在messaging.getInitialMessage().then的message非空判断中添加打印:

messaging.getInitialMessage().then((RemoteMessage? message) async {
  bool back = await getPrefrenceBool(ISFROMBACK);
  print("message******$message");
  if (message != null && back) {
    // 打印冷启动点击通知收到的消息
    print('冷启动点击通知,收到消息: ${message.toString()}');
    print('通知自定义数据: ${message.data}');
    if (message.notification != null) {
      print('通知标题: ${message.notification!.title}');
      print('通知内容: ${message.notification!.body}');
    }

    // 原有的处理逻辑...
    var data = message.data;
    var notif = message.notification;
    // ...你的原有代码
    setPrefrenceBool(ISFROMBACK, false);
  }
});

完成修改后,当PHP通过TopicToListen推送通知时:

  • 应用在前台:终端会直接打印通知内容
  • 应用在后台/冷启动:点击通知打开应用时,终端会打印通知内容

你可以通过Flutter的运行终端、Android Studio的Logcat或Xcode控制台查看输出的打印信息。

内容的提问来源于stack exchange,提问作者nexti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 02:31:32