展会通知安排

问题描述 投票:0回答:2

我正在使用 expo 构建一个 React Native 应用程序。我可以像这样每天发送通知

Notifications.scheduleNotificationAsync({
  content: {
    title: "Reminder",
    body: "lorem ipsum",
  },
  trigger: {
    hour: 12,
    minute: 30,
    repeats: true,
  },
});

我的目标是每天同一时间向用户发送提醒。我想每天从数据库或一组消息发送不同的提醒消息,我该如何做到这一点?被卡了一段时间

react-native expo
2个回答
1
投票

此安排通知的方法不允许在通知触发时运行特定代码。如果您有下次要发送的消息,则可以在安排通知时获取该数据。否则,我认为您应该使用 expo 的推送 API 以及某种 cron 作业在服务器端应用程序上执行此操作。

另一种替代方案可能是 BackgroundFetch api,但您需要编写一些逻辑来重新安排任务以获取数据并发送通知。


0
投票

我有同样的任务,我是这样做的:

export const ScheduleNotification = async () => {
  try {
    // Cancel all existing notifications
    await Notifications.cancelAllScheduledNotificationsAsync();

    // Your logic to get the data...
    // ...
    // ...
    // ...

    const { quote: title, story: body } = quoteData;

    // Schedule the new notification
    await Notifications.scheduleNotificationAsync({
      content: {
        title,
        body,
        data: { id },
      },
      trigger: { hour: 6, minute: 34, repeats: true },
    });

    console.log('Dynamic daily notification scheduled!');
  } catch (error) {
    console.error('Error scheduling dynamic daily notification:', error);
  }
};

顺便说一句,我使用 AsyncStorage 来获取我需要的所有数据。

© www.soinside.com 2019 - 2024. All rights reserved.