【问题标题】:Android Firebase Push notification not received in background?后台未收到 Android Firebase 推送通知?
【发布时间】:2020-08-02 12:01:49
【问题描述】:

当我的应用处于打开状态时,我通过 onMessageReceived(Remotemessage mesg) 收到推送通知。如果我的应用程序处于终止状态,我会收到推送通知,但不是来自 onMessageReceived()。

意味着,在收到推送通知后,根据通知中的数据,当点击通知时,我需要重定向页面。如果前台的应用程序运行良好。当我杀死时,我在托盘上收到通知,但是当我点击通知时,它只会打开我的应用程序,而不是那个重定向页面。我放了日志并检查了一下,甚至没有调用 onMessageReceived 。但在托盘上收到通知。我搜索了很多很多。找不到问题。 后端负载低于

  "to": "f2dFWIn81FY:APA91bGumzp0LRr4hvGqUb9WMOvmWqvHSqYcCBzTJlbJs2dmpfrv_tAdu",
  "priority": "high",
  "content_available": true,
  "Type": "Order",
  "notification": {
     "body": "Your [2224531] order is rejected",
     "title": "Order",
     "sound": "default"
  },
  "data": {
     "Title": "Your [2224531] order is rejected",
     "NotificationId": "efb46a45-cd9c-4cf7-881f-9510c24555a6"
  }
}

我正在尝试获取 MainActivity.java 中的数据,但捆绑包为空!!

Image of MainActivity

【问题讨论】:

    标签: java android firebase push-notification


    【解决方案1】:

    这是按预期工作的。如果应用程序处于后台/关闭状态,则不会调用 onMessageReceived。消息中指定的数据应该是这样的:

    if (intent?.hasExtra("NotificationId") == true) {
        val id = intent?.extras?.getString("NotificationId")?.toString())                    
    }
    

    如果应用是从消息点击意图打开的,则在您的 onCreate 启动活动中。

    【讨论】:

    • 用 MainActivity.java 的图像编辑了我的问题。其中有空数据;
    • 是的,这是我在 MainActivity 中已经拥有的。它不起作用。所以我不小心在 SplashActivity 中尝试了。它现在可以在某些设备中使用。我在 OnePlus 和小米中试过,绝对没问题。但是使用三星的测试团队并没有收到任何通知。
    • 此数据仅在启动器活动 (android.intent.category.LAUNCHER) 中可用。如果您在主要活动中需要它,则需要通过意图手动传递该数据(您正在启动 MainActivity。就像这样:stackoverflow.com/a/2091482/8835675
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    相关资源
    最近更新 更多