我正在使用 Expo 构建一个 React Native Android/IOS 应用程序,我需要有一个预定的通知进来并运行一些代码,无论该应用程序是在前台还是后台。
我目前使用 Expo 定义了这个后台任务:
TaskManager.defineTask(BACKGROUND_NOTIFICATION_TASK, ({data, error, executionInfo}) => {
console.log('Received a notification in the background!');
Notifications.scheduleNotificationAsync({
content: {
title: "HOORAY",
body: 'HOORAY',
data: {type: 'pre'}
},
trigger: {
seconds: 10,
},
});
});
Notifications.registerTaskAsync(BACKGROUND_NOTIFICATION_TASK);
这一切都是在全局范围内完成的文档
我尝试使用
Notifications.scheduleNotificationAsync
(如下所示)并尝试从 Firebase 仪表板发送推送通知,我收到它们很好,但无论应用程序是在前台还是后台,后台通知任务都不会运行。
Notifications.scheduleNotificationAsync({
content: {
title: "Example title",
body: 'Example body',
data: {test: 'true'}
},
trigger: {
seconds: 10,
},
});
还值得注意的是,任务正在注册中,
TaskManager.getRegisteredTasksAsync()
给了我这个[{"options": {}, "taskName": "BACKGROUND-NOTIFICATION-TASK", "taskType": "remote-notification"}]
根据我从文档中了解到的,我在
TaskManager
中设置的后台通知任务应该在收到通知时运行,无论应用程序是在前台还是后台,按照文档
我正在真实的 Android 设备 (Pixel 7 Pro) 上运行 Expo(版本 51.0.10)开发版本。
我哪里出错了?
根据以下问题,后台任务仅适用于纯数据通知。