当前位置: 首页 > 知识库问答 >
问题:

当应用在后台但用户没有点击收到的通知时如何处理消息

岳茂
2023-03-14

我知道以下几点。1.当应用程序是前景时,FCM有效负载会出现在onMessageReceived()中。2.当应用程序处于后台时,有效负载会出现在意向性附加项中。但仅当用户单击通知时。如果用户直接在app中跳转而不与通知互动怎么办?如何处理该场景中的有效负载。

我发送的有效载荷。

{
 "registration_ids" : ["FCM Token Here"],
 "notification" : {
     "body" : "Testing FCM Message Handling",
     "title": "This is a test to handle FCM Messages inside the App"
 },
 "data" : {
     "body" : "Testing FCM Message Handling",
     "title": "This is a test to handle FCM Messages inside the App",
     "sender_member_id" : "63",
     "sender_name" : "Chiranjeev Jain"
 }
}

onMessageReceived()实现。

public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        //Here notification is recieved from server
        try {
            // TODO: Handle Incoming Message
            String fcmMessageTitle = remoteMessage.getData().get("title");
            String fcmMessageBody = remoteMessage.getData().get("body");
            String fcmSenderMemberID = remoteMessage.getData().get("sender_member_id");
            String fcmSenderName = remoteMessage.getData().get("sender_name");
            Toast.makeText(this, fcmMessageTitle + "\n" + fcmMessageBody + "\n" + fcmSenderMemberID + "\n" + fcmSenderName, Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

共有1个答案

柳轶
2023-03-14

还要将有效负载存储在本地存储中(sqlite、SharedPreferences,无论您喜欢什么),在应用程序启动时查询该存储,并根据在那里找到的内容做出反应。

 类似资料:
  • 关于这个主题有很多stackoverflow线程,但是我仍然没有找到一个好的解决方案。 如果应用程序不在后台,我可以在调用中检查,查看是否从通知中打开。 如果应用程序在后台,所有帖子都建议使用并检查应用程序状态。但正如我所做的实验(也正如这个API的名称所暗示的那样),当收到通知时会调用这个方法,而不是点击。 所以问题是,如果应用程序启动后后台运行,并且您知道从收到通知(此时不会触发),您如何知道

  • 和分别用于: > 当应用程序在后台时用户点击通知时处理 当手机在前台时收到通知时进行处理。 但是,当应用程序在前台时,我们如何处理用户点击通知的事件?(例如,在点击通知时将用户带到相关的视图控制器)

  • 我使用FCM(Firebase Cloud Messaging)在iOS中发送推送通知。 我能够在应用程序处于前台状态时收到通知。但当应用程序处于后台状态时,不会收到通知。每当应用程序进入前台状态时,才会收到通知。 我的代码是: 当App处于后台状态时: --根本不叫。 我在应用程序功能中启用了推送通知和后台模式下的远程通知。但应用程序仍然没有收到通知。 我提到了一些问题,但没能解决这个问题。iO

  • 当应用程序在前台时不接收推送通知,但当应用程序在后台时接收我已遵循来自https://medium . com/@ ankushaggarwal/GCM-setup-for-Android-push-notifications-656 cf DD 8 adbd的FCM教程

  • 我知道有很多关于这个话题的文章,但我就是找不到正确的答案。 有没有办法知道用户何时收到远程通知以及用户何时在iOS8上点击了一个。我想知道这一点,因为当我收到它时,我想保存它,当用户点击它时,我想打开一些视图。 我找到了这个答案https://stackoverflow.com/a/16393957/1241217但问题是,当用户在应用程序中打开通知中心并单击其中一个时,该应用程序既不处于非活动状