为什么本地通知没有显示在 Mac 上?



我正在尝试从我的Mac应用程序发送本地通知(使用Cocoa以swift编写(到目前为止,我已经编写了这个函数

func scheduleNotification() {
let content = UNMutableNotificationContent()
content.title = "Test"
content.body = "This is a test"
content.sound = .default
content.badge = 1
let now = Date()
let int = timePicker.dateValue.timeIntervalSince(now)
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: int, repeats: false)
let request = UNNotificationRequest(identifier: "Test notification", content: content, trigger: trigger)
center.add(request) { (err) in
if err == nil {
print("Success")
}
}
}

但由于某些原因,它在通知中心没有显示横幅或任何内容。是我的代码出了问题还是其他原因导致了这种情况?(我检查过了,应用程序有发送通知的权限(此外,在macOS上iOS上的UIApplication.shared.applicationBadgeNumber = 0

如果应用程序在前台,则必须使用UNUserNotificationCenterDelegate。

UNUserNotificationCenter.current().delegate = self

首先在viewDidLoad中通知该代表。

extension ViewController: UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
return completionHandler([.alert, .sound, .badge])
}

}

然后,您可以使用这样的委托。查看更多信息本帖->本地通知

因此,事实证明,在MacOS Catalina中,请求许可是强制性的,这一切都缺失了。

最新更新