Як налаштувати iOS Push-сповіщення? Детальний гайд
Які основні види iOS Push-сповіщень існують? Як їх правильно впровадити? Як надіслати повідомлення так, щоб користувач його не побачив? iOS developer Надзея Савицька розповідає на конкретних прикладах і ділиться кодом.
Читати інші статті експерта:
— З пушами ми всі стикаємося щодня. Від багатьох навіть втомлюємося й забороняємо застосункам їх надсилати. Але попри те, що ніхто з розробників не може гарантувати на 100% доставку сповіщень користувачам, вони все ще залишаються одним із головних інструментів залучення споживачів, — розповідає Надзея.
Local Push Notifications
— Почнемо з найпростішого. У мене як у розробника немає нічого, окрім Xcode і платного акаунта розробника. Свій застосунок я розробляю сама, без Back-end і без використання будь-яких сторонніх сервісів, — усміхається Надзея. — Так, ви не помилилися: для того, щоб використовувати push notifications, треба мати платний акаунт розробника. З таким сетапом я зможу надсилати користувачам тільки Local Push Notifications. Як це виглядає для розробника: у Xcode у вкладці Signing & Capabilities додають нову capability — Push Notifications.
Далі ми вже можемо писати код для запиту дозволу на надсилання сповіщень користувачеві. Коли буде дозвіл, ми зареєструємо токен девайса в APNs — Apple Push Notifications Service. Цей токен — адреса конкретного девайса, за якою можна буде надсилати повідомлення конкретному користувачеві.
Користувач у будь-який момент може заборонити надсилання сповіщень. Розробнику на це не треба ніяк реагувати і щось додатково писати в коді. Девайс-токен залишається активним на той випадок, якщо користувач передумає й знову ввімкне надсилання сповіщень.
— Для надсилання Local Push Notifications потрібно написати ще кілька рядків коду, — додає Надзея. — Можна створити розклад із будь-якою кількістю сповіщень так, щоб вони всі відправлялися в потрібному графіку. Наприклад, це може бути схема з 5 сповіщень, де перше сповіщення надсилається за добу від останньої користувацької сесії, друге — за три дні, далі — за п’ять, сім і десять або як ви самі придумаєте.
— Мінуси Local Push Notifications полягають у тому, що їх ніяк не змінити після релізу програми. Для будь-яких змін у текстах або розкладі потрібно буде перезбирати збірку й заново проходити рев’ю.
Remote Push Notifications
— До нашого сетапу з Local Push Notifications треба додати провайдер, і можна буде надсилати сповіщення користувачам більш гнучко. Під провайдером може бути як серверна частина застосунку, так і будь-який зі сторонніх сервісів, як-от Firebase, Amazon Simple Notification Service, Braze, Kulumos, Onesignal, Airship. Ми можемо використовувати в одному застосунку як Local Push Notifications, так і Remote Push Notifications.
Для налаштування будь-якого з перерахованих вище сервісів розробнику необхідно з особистого кабінету developer.apple.com скачати ключ .p8 і завантажити в особистому кабінеті провайдера, наприклад Firebase. Як інтегрувати будь-який із сервісів у свій застосунок, найкраще опишуть документації на офіційних сайтах. Якщо сервіс було налаштовано, а надіслане тестове сповіщення так і не доходить до потрібного девайсу, можна скористатися застосунком для перевірки Remote Push Notifications, наприклад onmyway133.com. Так можна зрозуміти, на якому боці помилка: в інтеграції сервісу або в налаштуванні повідомлень.
Remote Notification Payload
— За своєю суттю, сповіщення — це деяка інформація, яка написана певним чином, вона називається payload, — пояснює Надзея. — Цю інформацію можна редагувати, додаючи або прибираючи деякі поля, тим самим змінюючи зовнішній вигляд і функції сповіщень. Давайте розглянемо деякі приклади.
Найпростіше сповіщення містить Title і Body:
На місці простого тексту можна надсилати ключі локалізації для того, щоб користувачеві відображався текст потрібною мовою:
Можна додати поле для додавання badge і потрібного числа на ньому:
Для деяких сповіщень можна використовувати окремий звук:
І передавати якусь кастомну інформацію:
Silent Push Notifications
— Часто для клієнт-серверного застосунку розробники хочуть оновлювати якусь інформацію, коли застосунок у користувача перебуває в бекграунді (згорнуто). Для цього підійдуть Silent Push Notifications. Під час надсилання таких сповіщень користувачі їх не побачать, але застосунок зможе зрозуміти, що необхідно зробити якусь дію, наприклад, оновити яку завгодно інформацію з сервера.
Для реалізації цих сповіщень у Xcode у вкладці Signing & Capabilities додають іще одну capability — Background Modes. У ній вибирають пункт Remote notifications.
У payload сповіщення необхідно додати поле "content-available" зі значенням 1 або true.
Тепер розробнику залишилося тільки зловити таке сповіщення. У didReceiveRemoteNotification методі необхідно зробити перевірку на Silent Push Notification і викликати потрібний метод оновлення.
Silent Push Notification не надійде на пристрій, якщо:
- Застосунок було вивантажено з пам’яті, тобто він не в background mode.
- На пристрої ввімкнено режим «Low Data Mode».
Інші Push Notifications
— Окрім переліченого вище, є ще такі види сповіщень:
- Provisional Push Notifications — користувач не отримає запит на дозвіл надсилання йому повідомлень. І сповіщення відображатимуться без звуку й тільки в Центрі сповіщень.
- Critical Alert Push Notification — таке сповіщення надійде користувачеві зі звуком, навіть якщо було ввімкнено режим «Не турбувати». Вам потрібен спеціальний дозвіл від Apple, щоб використовувати цю опцію, тому що вона призначена тільки для особливих випадків.
— Я спробувала розповісти про основні види iOS Push Notifications, — завершує Надзея. — Сподіваюся, стаття була корисною.
Щоб ділитися своєю експертизою в блозі Anywhere Club, заповнюй форму Стань героєм блогу.