如何在notife和FCM中接收后台通知



我一直在尝试通过react native中的rnfirebase使用FCM实现通知。并使用notife处理本地通知。

我已经能够通过firebase云消息接收后台通知,即死亡状态和最小化状态,并能够使用notife获得前台通知。

现在我想使用notife作为后台通知,以确保通知之间的一致性。

这里的代码

const displayNotification = async () => {
const channelId = await notifee.createChannel({
id: 'important',
name: 'Important Notifications',
importance: AndroidImportance.HIGH,
});
notifee.displayNotification({
body: 'This message was sent via FCM!',
android: {
channelId: channelId,
actions: [
{
title: 'Mark as Read',
pressAction: {
id: 'read',
},
},
],
},
});
};
messaging().setBackgroundMessageHandler(async remoteMessage => {
console.log('Message handled in the background!', remoteMessage);
displayNotification();
});
messaging().onMessage(async remoteMessage => {
console.log('Message handled in the foregourp!', remoteMessage);
displayNotification();
});

使用此代码获取前台通知。当应用程序最小化时,会收到两个通知,一个来自notife,另一个来自FCM。当应用程序被杀死时,只会收到FCM通知,而不会收到通知

问题

  1. 如何在杀死状态下从notife获得通知
  2. 如何禁用FCM后台通知。我需要从firebase发送仅限数据的通知吗
  3. 同样在OnePlus设备上,无法在killed中获得FCM通知状态,因为它显示应用程序未运行。我需要吗将添加到android清单文件

解决方案

Q1是通过将setBackgroundHandler从useEffect内部移动到钩子外部来解决的。

Q2仍在等待

第三季度仍在等待

backgroundMessageHandler单独创建一个带有来自FCM的信息的Notification,而触发您自己的通知只会导致两个通知。您应该在backgroundMessageHandler中删除displayNotification();。此外,backgroundMessageHandler应该位于index.js文件中,而不是您的应用程序中。

如果要忽略FCM后台通知,只需忽略通知参数即可。只需发送数据参数,但仅数据消息在Android和iOS上都以低优先级发送,默认情况下不会触发setBackgroundMessageHandler。要启用此功能,必须设置";"优先级";在Android上设置为高,并在消息负载中启用iOS的内容可用标志。

{
"to": "User_Device_Token",
"data": {
"body": "Body of Your Notification",
"title": "Title of Your Notification"
},
"priority": "high",
"contentAvailable": true
}

对Q2的回答。您需要从后端自定义消息对象

对于NodeJS

import { getMessaging } from "firebase-admin/messaging";
const message = {
data: {
title: "Title",
body: "This is the body",
},
token:
"fcm-token-here",
};
getMessaging()
.send(message)
.then((response) => {
res.json({
msg: "Sent successfully",
});
console.log(response);
})
.catch((err) => console.log(err));

如果你在消息对象中有通知对象,它也会显示firebase通知。如果您将其更改为数据,它将不会显示。您可以从notife 处理数据对象

相关内容

  • 没有找到相关文章

最新更新