在发送通知触发之前获取通知请求完成

问题描述

我一直在尝试实现本地通知的实例,但运气不佳。它似乎试图在请求的关闭完成之前安排通知,因此永远不会正确安排。

我为请求和发送构造了以下两种方法

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 说得对,如果有人知道如何相信我的话,所以在这里我将不胜感激。