[英]avoid overriding local notifications in swift
我使用以下代码创建本地通知,问题是新通知会在最后一个通知上覆盖:
let content = UNMutableNotificationContent()
content.title = userInfo["title"] as! String
content.body = userInfo["message"] as! String
content.sound = UNNotificationSound.default()
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest(identifier: "TestIdentifier", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
我该如何避免呢?
只需为每个通知设置不同的identifier:
它将每次自动创建新的本地通知。
请使用下面的示例代码随机生成通知标识符。
extension NSObject {
func randomNumber() -> Int {
let randomNumber = Int(arc4random_uniform(UInt32(INT_MAX)))
return randomNumber
}
}
现在,使用以下代码创建本地通知。
let content = UNMutableNotificationContent()
content.title = userInfo["title"] as! String
content.body = userInfo["message"] as! String
content.sound = UNNotificationSound.default()
//Random notification ID
let identifier = "HS\(String(self.randomNumber()))"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
在通知标识符中添加时间戳,例如遵循此代码。
让timestamp = NSDate()。timeIntervalSince1970
let content = UNMutableNotificationContent()
content.title = userInfo["title"] as! String
content.body = userInfo["message"] as! String
content.sound = UNNotificationSound.default()
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let timestamp = NSDate().timeIntervalSince1970
let request = UNNotificationRequest(identifier: "TestIdentifier\(Int(timestamp))", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.