Sobes.tech
Junior — Middle

Дар бораи таҷрибаи худ дар ҳамгироӣ ва кор бо огоҳиномаҳои push дар барномаҳо нақл кунед

sobes.tech AI

Ҷавоб аз AI

Дар iOS, барои кор бо огоҳиномаҳои push, ман Apple Push Notification Service (APNs)-ро истифода кардам. Қадамҳои асосӣ дохил мешаванд ба қайдгирии дастгоҳ барои гирифтани огоҳиномаҳои push, гирифтани токени дастгоҳ ва фиристодани он ба сервер, ки баъдан огоҳиномаҳоро тавассути APNs мефиристад.

Барои қайдгирӣ ва идоракунии огоҳиномаҳо дар барнома, ман методҳоро аз UNUserNotificationCenter ва UIApplicationDelegate истифода мебарам:

import UserNotifications

// Дархост барои иҷозат аз корбар
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    if granted {
        DispatchQueue.main.async {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}

// Гирифтани токени дастгоҳ
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    let tokenParts = deviceToken.map { data in String(format: "%02.2hhx", data) }
    let token = tokenParts.joined()
    print("Device Token: \(token)")
    // Фиристодани токен ба сервер
}

// Ҳамкорӣ бо огоҳиномаҳои қабулшуда
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
    let userInfo = response.notification.request.content.userInfo
    // Коркарди маълумоти огоҳинома
    completionHandler()
}

Ҳамчунин муҳим аст, ки барои кории дурустии огоҳиномаҳои push, бояд сертификатҳо ва профилҳо дар Apple Developer Center ва дар ҷониби сервер танзим карда шаванд.