Fuente
Затишна Галера | iOSКомпас 🧭1️⃣4️⃣2️⃣ Завдання 142Як працюють push-нотифікації?З вами з...
585 Vistas/Alcance
2026-02-18 08:48
Mensaje №2418
#iOSКомпас 🧭1️⃣4️⃣2️⃣ Завдання 142Як працюють push-нотифікації?З вами знову той самий автор каналу @badlinkschannel. Сподіваюсь вам ще не набридла ця ідея капітана галери про iOS розробника.Це повідомлення, які надсилаються застосунком користувачу навіть тоді, коли сам застосунок не активний. Це ефективний спосіб утримання користувачів і надання їм важливої інформації.🔣 Як працюють push-сповіщення🔣 Реєстрація пристроюКоли застосунок встановлюється та запускається на пристрої, він реєструється для отримання push-сповіщень. Для цього застосунок надсилає запит до Apple Push Notification Service (APNs) з метою отримання унікального токена пристрою (device token).🔣 Отримання токена пристроюAPNs видає токен, який є унікальним для конкретного застосунку на конкретному пристрої і може змінюватися з часом. Застосунок передає цей токен на свій сервер.🔣 Надсилання сповіщення з сервераСервер застосунку формує push-повідомлення з потрібним payload та device token і надсилає його до APNs через офіційний API.🔣 Доставка сповіщенняAPNs автентифікує сервер, знаходить відповідний пристрій за токеном і доставляє сповіщення.🔣 Отримання сповіщення на пристроїiOS відображає сповіщення відповідно до налаштувань користувача. При взаємодії зі сповіщенням застосунок може обробити його та виконати потрібну логіку.🔣 В AppDelegateimport UIKitimport UserNotifications@UIApplicationMainclass AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Запит дозволу на надсилання сповіщень UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in if granted { DispatchQueue.main.async { UIApplication.shared.registerForRemoteNotifications() } } } return true } 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)") // Надсилаємо токен на сервер // serverAPI.registerDeviceToken(token) } func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) { print("Failed to register: \(error)") }}
@Zatishna_Galera