【问题标题】:Local Notification Not Firing本地通知未触发
【发布时间】:2015-10-31 13:23:02
【问题描述】:

我正在尝试使用本地通知,这是我的代码:

应用代理

application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [UIUserNotificationType.Sound, UIUserNotificationType.Alert, UIUserNotificationType.Badge], categories: nil))    

notificationViewController

let localNotification:UILocalNotification = UILocalNotification()

var BDate = friend.birthday.componentsSeparatedByString("/")

let date = NSDate.date(year: 2015, month: Int(BDate[1])!, day: Int(BDate[0])! - daysBefore, hour: hour, minute: min, second: 0)
localNotification.soundName = "notificationSound.mp3"

localNotification.alertBody = friend.fullName + " has a birthday today!"

localNotification.fireDate = date
localNotification.timeZone = NSTimeZone.localTimeZone()
localNotification.repeatInterval = NSCalendarUnit.Year

UIApplication.sharedApplication().scheduleLocalNotification(localNotification)    

friend.birthday 是一个字符串 - “DD/MM/YYYY”

我正在为朋友数组中的每个朋友调用 setNotification 函数。当只有一两个朋友时,我会收到通知,但有约 100 多个朋友时,我不再收到通知。

我知道 fireDate 是正确的,我检查过了。

为什么代码不起作用?

【问题讨论】:

  • 修复了,还是不行
  • 你检查过你设置的开火日期吗?
  • 是的,日期正确
  • @OmerN 你需要在设置fireDate之前设置timeZone

标签: ios swift notifications uilocalnotification


【解决方案1】:

设备上的每个应用程序仅限于 64 个计划的本地通知。系统丢弃超过此限制的预定通知,仅保留最快触发的 64 个通知。定期通知被视为单个通知。

You can find more detail here

【讨论】:

    【解决方案2】:

    看来您确实超出了通知限制。有几个提示和指南可能会有所帮助:

    1. 尝试检查您的dateNSDate() 并仅在date.timeIntervalSinceReferenceDate > NSDate().timeIntervalSinceReferenceDate 时安排通知(NSDate 中有一个compare 方法,但我更喜欢比较原始值)
    2. 一个接一个地安排本地通知对于应用程序性能来说是非常昂贵的,因此您可以形成一个通知数组并一次安排所有通知。为此目的使用UIApplication.sharedApplication().scheduledLocalNotifications 属性。
    3. 这将允许您在每次应用程序启动时有效地重新安排所有通知。例如在applicationDidFinishLaunching() 委托方法中。
    4. 此外,这将为您带来另一个优势:您可以轻松检查通知限制,并在必要时添加/替换第 64 条通知,提示用户启动您的应用程序,以允许它安排更多通知。这是许多应用程序处理 Apple 限制的常见做法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      相关资源
      最近更新 更多