我有一个运行中的react-native应用程序,现在正在集成Notifee。目前我仅优先考虑iOS平台,因此在接下来的问题中请假设仅为iOS。谢谢您的提前回答!
在我的index.js中,在注册App组件之前,我设置了onBackgroundEvent事件监听器,这是根据文档正确的:
当我在应用程序处于后台状态时,从我的服务器发送远程通知并按下通知时,我只能看到以下日志:
在我的index.js中,在注册App组件之前,我设置了onBackgroundEvent事件监听器,这是根据文档正确的:
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';
import notifee, {EventType} from '@notifee/react-native';
notifee.onBackgroundEvent(async ({type, detail}) => {
console.log('onBackgroundEvent', event);
if (event.type === EventType.PRESS) {
console.log('User pressed the notification.', event.detail.pressAction?.id);
}
});
AppRegistry.registerComponent(appName, () => App);
当我在应用程序处于后台状态时,从我的服务器发送远程通知并按下通知时,我只能看到以下日志:
LOG handleBackgroundMessage
LOG onBackgroundEvent 3 // 3 === EventType.DELIVERED
所以背景事件监听器已经正确设置,但是 EventType.PRESS
没有按预期触发。我只收到 EventType.DELIVERED 事件。
这是我用于显示通知的代码:
const handleBackgroundMessage = async message => {
console.log('handleBackgroundMessage');
await notifee.requestPermission();
// Display a notification
const notificationPayload = {
title: message.data.title + ' pdosprewq',
body: message.data.body,
};
await notifee.displayNotification(notificationPayload);
};
我已经在 Github 的问题和 notifee 文档 中搜索过了,但似乎没有任何额外的实现来接收 EventType.PRESS
。非常感谢您的帮助!
package.json:
"@notifee/react-native": "^7.7.1",
"react": "18.2.0",
"react-native": "0.71.8",