Sobes.tech
Junior — Middle

Push-эскертүүлөрдү иштетүүнү колдоо үчүн системанын кодунда кандай өзгөртүүлөрдү киргизүү керек?

sobes.tech AI

AIден жооп

iOS тиркемесинде push-белгілерін өңдөуді қолдау үшін келесі өзгерістер енгізілуі керек:

  1. Push-белгілерін алу үшін тіркеу

AppDelegate-ге қолданушыдан рұқсат сұрауды қосу:

import UserNotifications

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    if granted {
        DispatchQueue.main.async {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}
  1. Құрылғы тіркеуін өңдеу

Құрылғы токенін алу үшін делегат әдістерін жүзеге асыру:

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. Мүмкіндіктерді баптау

Xcode-да Signing & Capabilities бөлімінде Push Notifications-ты қосу.

Осылайша, қолданба серверден push-хабарламаларды қабылдап, өңдей алады.