在iOS上取消所有博览会本地计划的通知

时间:2018-11-25 19:31:31

标签: ios react-native notifications uilocalnotification expo

我尝试使用expo(反应性本机)计划本地通知,并且发生了非常奇怪的事情。

这是我写的代码:

const localNotification = {
  title: 'test',
  body: 'test body',
  ios: {
    sound: true
  }
};

let t = new Date();
t.setSeconds(t.getSeconds() + 10);

const schedulingOptions = {
  time: t, // (date or number) — A Date object representing when to fire the notification or a number in Unix epoch time. Example: (new Date()).getTime() + 1000 is one second from now.
  repeat: 'minute'
};

Notifications.scheduleLocalNotificationAsync(localNotification, schedulingOptions);

然后,每次应用程序在后台运行时,我都会收到相同的通知。

我删除了这段代码,改而使用Notifications.presentLocalNotificationAsync(),并且我希望先前的通知会停止出现,因为整个应用程序中的任何地方都不会调用Notifications.scheduleLocalNotificationAsync()

在Android上,我重新启动了手机,通知不再显示,但是在iOS上,即使在重新启动并重新安装博览会后,我仍然收到相同的预定通知。

我没有运气就打电话给Notifications.cancelAllScheduledNotificationsAsync()

1 个答案:

答案 0 :(得分:0)

当您的代码名为scheduleLocalNotificationAsync()时,它在操作系统中注册了一个定期通知-仅删除代码是不够的。

我认为您正在寻找Notifications.cancelAllScheduledNotificationsAsync()

https://docs.expo.io/versions/latest/sdk/notifications/#notificationscancelallschedulednotificationsasync