用户通知仅限于iOS应用中的限制如何为警报应用发送无限制?

时间:2018-03-30 12:31:03

标签: ios swift usernotifications unusernotification

我正在处理alarm app project(Click for GitHub link)此代码工作正常,但问题是当时通知限制为大约64,所以在用户响应通知之前我无法发送继续通知。我读了一些苹果限制本地通知只有64但我在苹果商店看到很多应用程序在这里连续发送通知,这里有来自苹果商店的几条链接。

https://itunes.apple.com/us/app/red-clock-free-edition-the-minimal-alarm-clock/id567374573?mt=8 https://itunes.apple.com/us/app/alarmy-alarm-clock/id1163786766?mt=8

任何人都有助于了解此应用程序如何能够持续发送,我尝试这些应用程序正在发送通知,直到用户响应应用程序(我检查了超过1小时)。以下是设置单一通知的代码。

    let comingSunday =  findNext("Sunday", afterDate: fireDate.adding(minutes: item))
    let triggerDate = Calendar.current.dateComponents([ .year, .month, .weekday, .hour, .minute, .second], from: comingSunday!)
    let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: alarm.repeatAlarm)

    let request = UNNotificationRequest(identifier: "\(alarm.uuid)0\(item)", content: notificationContent, trigger: trigger)
    UNUserNotificationCenter.current().add(request) { (error) in
                         if let error = error {
                           print("Unable to add notification request, \(error.localizedDescription)")
                         }
    }

Video of Alarmy app with continuous notification

请在App Store中安装并运行应用,并在发布回答之前注意通知在上述应用中的运作方式

3 个答案:

答案 0 :(得分:2)

您可以在本地数据库中存储有关所有通知的信息。

例如,如果您有超过64个通知,则可以通过UNUserNotificationCenter发布64个通知,其他通知保存到本地数据库。

如果其中一个本地通知已完成(已经提供),您可以从本地数据库获取有关第一个通知的信息并安排它(也可以从本地数据库中删除它,或者添加指定键(例如isScheduled))

您可以在委托方法中处理此操作:

var menuBar = document.getElementById('menu-bar').addEventListener('click', menuSlideLeft());

答案 1 :(得分:0)

可能是微不足道的,但如果你只需要多次通知, 我通常使用:

UNTimeIntervalNotificationTrigger(     timeInterval:60.0,     重复:true)

所以你可以添加一个重要的一个,它可以与你的其他(真实)通知共存。 一旦用户点击,您就可以杀死它。

答案 2 :(得分:0)

func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Swift.Void)

代理仅在应用程序运行时起作用