Я хочу показывать уведомление только на определенных страницах, например, если идентификатор пользователя, полученный из полезной нагрузки уведомления, не равен текущему идентификатору пользователя. Где я должен использовать это условие внутри appdelegate? Я использовал willPresent делегат userNotificationCenter
, чтобы доставить уведомление, когда приложение находится на переднем плане, и запрашивать разрешение на отображение метода уведомления в didFinishLauchingWithOptions
в AppDelegate
.
Пример кода метода willPresent приведен ниже.
func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void){
if let userID = notification.request.content.userInfo["user_id"] {
self.userIDSelected = userID as! String
}
let notificationCenter = UNUserNotificationCenter.current()
notificationCenter.removeAllDeliveredNotifications()
if self.currentuserID != self.userIDSelected
{
completionHandler([.alert,.badge,.sound])
}
else
{
completionHandler([])
}
}