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

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

岳茂
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,无论您喜欢什么),在应用程序启动时查询该存储,并根据在那里找到的内容做出反应。

 类似资料: