本地通知 UNTimeIntervalNotificationTrigger triggerWithTimeInterval 每 1 分钟触发一次 如何停止
Posted
技术标签:
【中文标题】本地通知 UNTimeIntervalNotificationTrigger triggerWithTimeInterval 每 1 分钟触发一次 如何停止【英文标题】:Local notification UNTimeIntervalNotificationTrigger triggerWithTimeInterval fires every 1 minutes how to stops 【发布时间】:2017-01-04 10:19:18 【问题描述】:我在我的应用程序中使用本地通知向用户提醒紧急消息。发生的情况是用户收到推送通知,然后创建本地通知并在 60 秒后以 60 秒的时间间隔触发。这很好用,紧急通知按预期每 60 秒触发一次。
每分钟触发一次本地通知星。但是我要 阻止他们。你能建议我如何处理这个问题吗?
在 ios 9 上我们根本没有遇到这个问题,甚至一夜之间通知会反复触发,所以我认为这可能与 iOS 10 相关?
我用来创建通知的代码如下:
let content = UNMutableNotificationContent()
content.body = NSString.localizedUserNotificationString(forKey: notificationMessage, arguments: nil)
content.badge = 1
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60, repeats: true)
let request = UNNotificationRequest.init(identifier: "", content: content, trigger: trigger)
center.add(request, withCompletionHandler: (_ error: Error?) -> Void in
if error == nil
print("add NotificationRequest succeeded!")
// trigger.timeInterval.
)
【问题讨论】:
func redirectLogToDocuments() let allPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) let documentsDirectory = allPaths.first! let pathForLog = documentsDirectory.appendingFormat("/applog.txt") freopen(pathForLog.cString(using: String.Encoding.ascii)!, "a+", stderr) 【参考方案1】:我找到了缺失的地方。
let content = UNMutableNotificationContent()
content.title = NSString.localizedUserNotificationString(forKey: "Elon said:", arguments: nil)
content.body = NSString.localizedUserNotificationString(forKey: notificationMessage, arguments: nil)
content.sound = UNNotificationSound.default()
content.badge = UIApplication.shared.applicationIconBadgeNumber + 1 as NSNumber?
content.categoryIdentifier = "com.elonchan.localNotification"
// Deliver the notification in five seconds.
let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 60.0, repeats: false)
let request = UNNotificationRequest.init(identifier: "FiveSecond", content: content, trigger: trigger)
// Schedule the notification.
center.add(request, withCompletionHandler: (_ error: Error?) -> Void in
if error == nil
print("add NotificationRequest succeeded!")
center.removePendingNotificationRequests(withIdentifiers: ["FiveSecond"])
)
【讨论】:
以上是关于本地通知 UNTimeIntervalNotificationTrigger triggerWithTimeInterval 每 1 分钟触发一次 如何停止的主要内容,如果未能解决你的问题,请参考以下文章