ios - UNUserNotification 不会触发我在 iOS 12 下的本地通知

标签 ios swift unusernotificationcenter

在代码中我尝试这样做:

import UserNotifications

if #available(iOS 10.0, *) {
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert, .sound]) { _, _ in }
        let content = UNMutableNotificationContent()
        content.title = "Hello Staff"
        content.body = "Customer just ordered a milk with croissant"
        content.sound = UNNotificationSound.default()
        let date = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute, .second], from: Date(timeIntervalSinceNow: 10))
        let trigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: false)
        let request = UNNotificationRequest(identifier: "abcde", content: content, trigger: trigger)
        center.add(request)
}

所有发生在 AppDelegate 中。但是我看不到任何本地通知。为什么?

最佳答案

您的代码运行良好。我想问题是当您收到通知时您的应用程序处于事件状态。 iOS 仅在应用未激活时显示系统通知。如果通知触发时应用处于事件状态,系统会触发 UNUserNotificationCenterDelegate 方法,以便您可以自己处理通知。

因此,由于您设置了延迟 10 秒的通知时间,因此您需要运行您的应用,然后关闭它并等待 10 秒。如果您向您的应用授予此类权限,则应该会出现通知。

关于ios - UNUserNotification 不会触发我在 iOS 12 下的本地通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52438828/

相关文章:

objective-c - 你如何为 Swift 使用准备一个 Objective-C 框架?

ios - 再次发送通知

ios - UIButton的子类可以触发segues吗?

ios - 如何使用 Xcode 从 Dropbox 上传/下载文件

ios - 自定义选项卡栏以在 View Controller 之间导航

ios - 设备锁定时可以处理通知操作吗?

ios - 当应用程序处于非事件状态时,如何通过点击 UNUserNotification 操作按钮中的播放按钮来启动音频播放器?

ios - 如何_确切地_将 DTFoundation 集成到另一个 iOS 项目中?

ios - NSDictionary 方法 allKeys 在 iOS 中 JSON 序列化后崩溃

swift - 在 Swift 中发送简单的 POST,得到 "Empty Post"响应