我正在使用UNNotificationRequest
,我希望当我点击按钮时立即弹出通知。但在这种情况下,它会在我退出应用程序时出现。这是我的代码
@IBAction func shortNotifBtn(_ sender: Any) {
let center = UNUserNotificationCenter.current()
let content = UNMutableNotificationContent()
content.title = "Late wake up call"
content.body = "The early bird catches the worm, but the second mouse gets the cheese."
content.categoryIdentifier = "alarm"
content.userInfo = ["customData": "fizzbuzz"]
content.sound = UNNotificationSound.default()
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
center.add(request)
}
当问题是关于更现代的UILocalNotification
时,Max的答案是对于弃用的UNNotificationRequest
。
正确的答案是通过nil
。根据documentation for UNNotificationRequest
's requestWithIdentifier:content:trigger:
trigger
导致通知传递的条件。指定nil立即发送通知。
所以在你的代码中:
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: nil)
https://developer.apple.com/reference/uikit/uilocalnotification
如果应用程序在系统发送通知时最重要且可见,则会调用应用程序委托的应用程序(_:didReceive :)来处理通知。使用提供的UILocalNotification对象中的信息来确定要采取的操作。当应用程序已经位于最前端时,系统不会显示任何警报,标记应用程序的图标或播放任何声音。
这是正常的行为。此外,为什么你需要通过点击按钮触发本地通知?为什么不在点击按钮而不通知通知时实现所需的功能?