在发送通知触发之前完成通知请求
Posted
技术标签:
【中文标题】在发送通知触发之前完成通知请求【英文标题】:Getting Notification Request to complete before Send Notification fires 【发布时间】:2021-04-21 14:57:18 【问题描述】:我一直在尝试实现一个本地通知实例,但运气不佳。它似乎试图在请求关闭完成之前安排通知,因此永远不会正确安排。
我为请求和发送构造了以下两种方法:
func requestNotificationAuthorization(myDate: Date)
let authOptions = UNAuthorizationOptions.init(arrayLiteral: .alert, .badge, .sound)
self.userNotificationCenter.requestAuthorization(options: authOptions) (success, error) in
if let error = error
print(error.localizedDescription)
func sendNotification(myDate: Date)
let content = UNMutableNotificationContent()
content.title = "My Title"
content.body = "Placeholder for data from Firebase"
content.sound = .default
let triggerDaily = Calendar.current.dateComponents([.hour, .minute], from: myDate)
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDaily, repeats: true)
let identifier = "LocalNotification"
let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
userNotificationCenter.add(request, withCompletionHandler: (error) in
if let error = error
print("Error")
)
以下是对这些方法的调用:
let newDate = formatter.date(from: myDate)
self.requestNotificationAuthorization(myDate: newDate!)
self.sendNotification(myDate: newDate!)
在确定 requestNotification 已成功完成之前,我不确定如何推迟 sendNotification 调用。如果有人愿意为此提供一些有用的帮助,我将不胜感激。
【问题讨论】:
基本asynchrone
概念。在当你在 requestAuthorization(options:)
闭包中执行 if let error = error
时,如果被授予,则调用 sendTheNotification
。
谢谢 Larme 我以为我已经尝试过了,但我第一次没有或没有正确。我现在很好。
【参考方案1】:
Larme 是对的,如果有人知道如何将我的话归功于他,那么在这里我将不胜感激。
【讨论】:
以上是关于在发送通知触发之前完成通知请求的主要内容,如果未能解决你的问题,请参考以下文章
使用 Firebase 云消息传递,还是让应用通过 API 请求事件和触发通知?