我知道以下几点。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();
}
}
还要将有效负载存储在本地存储中(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但问题是,当用户在应用程序中打开通知中心并单击其中一个时,该应用程序既不处于非活动状