Sobes.tech
Junior — Middle

Ի՞նչ փոփոխություններ պետք է կատարվեն համակարգի կոդում, որպեսզի աջակցեն push-հաղորդագրությունների մշակմանը:

sobes.tech AI

Պատասխան AI-ից

Для падтрымкі апрацоўкі push-уведамленняў у iOS прыкладанні неабходна ўнесці наступныя змены:

  1. Рэгістрацыя на атрыманне push-уведамленняў

У AppDelegate дадаць запыт дазволу ў карыстальніка:

import UserNotifications

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    if granted {
        DispatchQueue.main.async {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}
  1. Апрацоўка рэгістрацыі прылады

Рэалізаваць метады дэлегата для атрымання device token:

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    // Адправіць deviceToken на сервер
}

func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
    print("Не ўдалося зарэгістравацца: \(error)")
}
  1. Апрацоўка ўваходных паведамленняў

Рэалізаваць метады для апрацоўкі паведамленняў, калі прыкладанне ў фонавым рэжыме і ў актыўным стане:

import UserNotifications

extension AppDelegate: UNUserNotificationCenterDelegate {
    func userNotificationCenter(_ center: UNUserNotificationCenter, 
                                willPresent notification: UNNotification, 
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        // Апрацоўка паведамлення пры актыўным прыкладанні
        completionHandler([.alert, .sound])
    }

    func userNotificationCenter(_ center: UNUserNotificationCenter, 
                                didReceive response: UNNotificationResponse, 
                                withCompletionHandler completionHandler: @escaping () -> Void) {
        // Апрацоўка націску на паведамленне
        completionHandler()
    }
}
  1. Настройка capabilities

У Xcode уключыць Push Notifications у раздзеле Signing & Capabilities.

Такім чынам, прыкладанне зможа атрымліваць і апрацоўваць push-уведамленні ад сервера.