gpt4 book ai didi

android - 用户点击 FCM 通知后,如何在后台应用程序中访问数据负载?

转载 作者:行者123 更新时间:2023-11-29 02:34:14 25 4
gpt4 key购买 nike

我正在通过将以下 JSON 内容发布到 URL https://fcm.googleapis.com/fcm/send 来向处于后台 中的 Android 应用发送带有数据负载的 FCM 通知消息

{
"notification":{"body":"Alexander performs a move!"},
"data":{"gid":1},
"to":"c0k6VWNdTSo:APA91bETXBGasi-X6-VGWTWYtSv3u1NETwqblEW1uoE1MswFkb9-Yf-rlVEGbaPD4gLQh3JLWIAyQRvAYNcdtmZLgFDhUEnXwFpVQSNFFr0xl47sK9FnvRY9J6JLX2P34UvpuCbZYBZ4"
}

并收到 FCM 后端关于成功交付的确认信息:

{
"multicast_id":7103158248293730650,
"success":1,
"failure":0,
"canonical_ids":0,
"results":[{"message_id":"0:1514203203800219%c7d12ab4c7d12ab4"}]
}

之后我点击 Android 手机顶部的通知,我的应用程序正在启动(之前它在后台):

debugger screenshot

然后我尝试访问“gid”值,我已通过 onCreate 方法中的代码在通知的“数据”部分设置了该值:

    Intent i = getIntent();
int gid = i.getIntExtra("gid", 0);
if (gid > 0) {
// TODO show GameFragment
}

不幸的是,没有这样的 EXTRA(您还可以在上面的调试器屏幕截图中看到,出于某种原因,没有随 Intent 传递的额外信息)。

请问我在这里缺少什么?根据Firebase doc (强调我的):

When in the background, apps receive the notification payload in the notification tray, and only handle the data payload when the user taps on the notification.

点击通知后如何访问“数据”部分,它不是作为 intent extra 传递的吗?

最佳答案

通知部分完全由谷歌处理。而且也没有通知点击事件。默认情况下,通知点击启动器 Activity 将被打开,它完全由谷歌管理。所以你必须通过检查在启动器 Activity 上管理它数据部分。

Data part handling

因为数据部分完全取决于你,你是如何从服务器发送的

if (remoteMessage.getData().size() > 0) {
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
}

// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) {
Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
}

关于android - 用户点击 FCM 通知后,如何在后台应用程序中访问数据负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47968520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com