问题描述
我一直在尝试实现本地通知的实例,但运气不佳。它似乎试图在请求的关闭完成之前安排通知,因此永远不会正确安排。
我为请求和发送构造了以下两种方法:
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!)
我不确定如何推迟 sendNotification 调用,直到我确定 requestNotification 已成功完成。如果有人愿意为此提供一些有用的帮助,我将不胜感激。
解决方法
Larme 说得对,如果有人知道如何相信我的话,所以在这里我将不胜感激。