gpt4 book ai didi

android - 从服务器发送通知时,remoteMessage.getNotification() 始终为 null - Android

转载 作者:行者123 更新时间:2023-11-29 23:49:49 26 4
gpt4 key购买 nike

在我的项目中,我需要从服务器向客户端发送通知。我可以从 FCM 控制台发送通知,但是当我从服务器向客户端发送通知时,remoteMessage.getNotification() 总是返回 null。正确接收数据时。当我同时发送数据和通知时,只有数据是非空的,而通知是空的。

我已经查过了this问题。但解决方案对我不起作用。下面是客户端和服务器端代码 fragment 以及调试客户端应用程序时的屏幕截图。

客户端应用程序:(onMessageReceived)

override fun onMessageReceived(remoteMessage: RemoteMessage?) {
super.onMessageReceived(remoteMessage)

Log.e(TAG, "From: " + remoteMessage?.from)

// Check if message contains a data payload.
if ((remoteMessage?.data?.size ?: 0) > 0) {
Log.e(TAG, "Message data payload: ${remoteMessage?.data}")
}
val a = remoteMessage?.notification
if (a != null) {
Log.e(TAG, "Message Notification Body: " + remoteMessage.notification?.body)
}

}

服务器端代码(node.js)

var request = require('request');

// Set the headers
var headers = {
'Content-Type':'application/json',
'Authorization': 'key=AIzaSyAzMLMp....'
}

// Configure the request
var options = {
url: 'https://fcm.googleapis.com/fcm/send',
method: 'POST',
headers: headers,
form: {
"to": "eZoeSIRba6g:AP...",
"notification" : { "body" : "my body"} }

}

// Start the request
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
// Print out the response body
console.log(body)
}
console.log(body + " error : " + error)
})

而如果我使用以下部分,则代码可以正常工作。

form: {
"to": "eZoeSIRba6g:APA91bEYrP...",
"data" : { "body" : "my body"} }

调试应用程序时的屏幕截图。(检查变量“a”的值) enter image description here

如果有人知道如何解决这个问题,请帮助我。提前谢谢你。

最佳答案

{
"to" : "YOUR_FCM_TOKEN_WILL_BE_HERE",
"data" : {
"body" : "First Notification",
"title": "Collapsing A",
"key_1" : "Data for key one",
"key_2" : "Hellowww"
}
}

使用像这样的 JSON,然后你的 onMessageReceived 将被调用。

关于android - 从服务器发送通知时,remoteMessage.getNotification() 始终为 null - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51001542/

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