gpt4 book ai didi

android - 无法让 setBackgroundMessageHandler 工作

转载 作者:行者123 更新时间:2023-12-03 13:57:22 27 4
gpt4 key购买 nike

react-native-firebase v6 , 收不到 setBackgroundMessageHandler在我的应用程序中工作。收到通知就好了,但没有执行处理程序。

我已经像 guide 中那样做了无济于事。

import { AppRegistry } from 'react-native';
import messaging from '@react-native-firebase/messaging';
import AsyncStorage from '@react-native-community/async-storage';
import App from './App';
import { name as appName } from './app.json';

AppRegistry.registerComponent(appName, () => App);

messaging().setBackgroundMessageHandler(async ({ data: { title, message } }) => {
console.log('in background');
// Save the notification locally
const notificationList = JSON.parse(await AsyncStorage.getItem('@SM_NOTIFICATIONS')) || [];
notificationList.push({ title, message, isRead: false });
await AsyncStorage.setItem('@SM_NOTIFICATIONS', JSON.stringify(notificationList));
});

除了传入的通知之外,什么也没发生。我希望代码将传入的通知保存在 AsyncStorage 中.

最佳答案

好的。在咨询了开发团队之后,我终于弄清楚了这一点。

一、setBackgroundMessageHandler必须在 registerComponent 之前调用.

二、不发送通知数据。仅发送自定义数据(静默推送)。 因此,您需要使用本地通知而不是推送通知来在系统托盘中显示通知。

因为 Firebase 控制台不支持静默推送,所以我使用了 FCM API v1仅发送数据。这是我的例子:
POST https://fcm.googleapis.com/v1/projects/my-project/messages:send

{
"validate_only": false,
"message": {
"name": "XXX",
"data": {
"title": "BG 2",
"message": "BG BARU"
},
"topic": "C3166"
}
}

如您所见,没有 notification上面 JSON 中的字段。

关于android - 无法让 setBackgroundMessageHandler 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58582059/

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