iOS 会限制预定的本地推送通知吗?

Posted

技术标签:

【中文标题】iOS 会限制预定的本地推送通知吗?【英文标题】:Does iOS throttle scheduled local push notifications? 【发布时间】:2018-10-04 08:42:06 【问题描述】:

我的应用通过FCM 接收静默推送通知,正如我在日志中看到的那样,这些通知已被接收和处理。然后,我的应用程序会根据某些逻辑决定是否向用户显示通知。这有时有效,有时无效。在我看来好像它首先工作然后突然停止工作,所以我猜测这可能是一个节流问题?

我确实安排了 5 个通知,间隔 30 秒 - 这样用户就不会错过通知:

    for i in 0...5 
        let notification = UNMutableNotificationContent()
        notification.title = NSLocalizedString("bed_wet", comment: "")
        notification.subtitle = device.lookAfterPatientString
        notification.sound = UNNotificationSound(named: "alarm.mp3")
        notification.categoryIdentifier = Notification.Category.alarm
        notification.userInfo = ["identifier": device.id]

        let timeInterval = max(1, delaySeconds) + i * 30
        let notificationTrigger = UNTimeIntervalNotificationTrigger(timeInterval: TimeInterval(timeInterval), repeats: false)
        let request = UNNotificationRequest(identifier: UUID.init().uuidString, content: notification, trigger: notificationTrigger)

        UNUserNotificationCenter.current().add(request)  error in
            ...
        
    

这个循环会是问题吗?

【问题讨论】:

打印出时间间隔。在我看来,没有 30 秒间隔的限制。 调度发生了,这是肯定的 - 似乎通知从未显示...... 我发现了这个:***.com/a/47319860/978133 但不确定它是否能回答你... 很遗憾没有,我从不一次安排超过 64 个 您能否显示更多代码,因为其他地方可能存在问题 【参考方案1】:

用dispatch_async试试吧,可能调用了几个不阻塞主线程的代码,有些时候没有调用。

第二个问题可能是 ios 具有防止应用向手机发送垃圾邮件的逻辑。你有没有看到 instagram 通知从几百到只有几个通知。

谢谢

【讨论】:

以上是关于iOS 会限制预定的本地推送通知吗?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 开发:推送通知阻止我的本地通知触发

iOS 本地推送

使用 react-native 创建本地推送通知 - IOS

iOS 推送通知本地化

React Native - 在接收本地推送通知时清除以前的推送通知

ios 本地通知与消息推送