23/03/2023
V dnešní digitální éře jsou push notifikace jedním z nejmocnějších nástrojů pro udržení kontaktu s uživateli vašich mobilních aplikací. Umožňují posílat okamžité zprávy, které se objeví přímo na obrazovce zařízení, ať už je aplikace otevřená, zavřená, nebo běží na pozadí. To je ideální pro sdělování důležitých aktualizací, připomenutí, propagačních akcí nebo jakýchkoli informací, které mají uživatele přimět k opětovnému spuštění aplikace nebo k provedení určité akce. V tomto článku se podrobně podíváme na dva oblíbené nástroje – Pusher Beams a myNotifier – které vám pomohou implementovat push notifikace pro vaše iOS aplikace.

- Push notifikace s Pusher Beams: Komplexní řešení pro iOS
- Posílání push notifikací s myNotifier: Rychlé a personalizované upozornění
- Srovnání: Pusher Beams vs. myNotifier
- Často kladené otázky (FAQ)
- Co jsou to push notifikace?
- Proč bych měl(a) používat push notifikace?
- Fungují push notifikace v iOS simulátoru?
- Co je Apple Push Notification service (APNs)?
- Co je `deviceToken` a proč je důležitý?
- Mohu posílat notifikace více uživatelům najednou?
- Jak mohu posílat push notifikace s rich media obsahem?
Push notifikace s Pusher Beams: Komplexní řešení pro iOS
Pusher Beams je výkonná služba, která zjednodušuje proces odesílání push notifikací na různé platformy, včetně iOS, Android a webu. Díky svým SDK a API můžete odesílat notifikace všem vašim uživatelům jediným požadavkem. Pro iOS Pusher Beams spravuje vaše aplikační pověření a životní cyklus tokenů zařízení, což jsou oba nezbytné prvky pro komunikaci s Apple Push Notification service (APNs).
Co jsou „Interests“ a proč je používat?
Jednou z klíčových funkcí Pusher Beams jsou „Interests“ (zájmy). Ty fungují jako trvalé Pub/Sub témata, ke kterým se mohou zařízení uživatelů přihlásit. Díky tomu můžete s jedním požadavkem aktualizovat mnoho zařízení najednou. Můžete si vytvořit tolik zájmů, kolik potřebujete, a posílat neomezené množství push notifikací. To je ideální pro segmentaci uživatelů a cílené doručování obsahu.
Krok 1: Registrace účtu Pusher
Než začneme, je potřeba si vytvořit bezplatný sandbox účet Pusher nebo se přihlásit k již existujícímu. Bezplatný plán vám umožní posílat neomezené množství push notifikací až na 1000 zařízení během jednoho fakturačního měsíce.
Krok 2: Nastavení instance Beams
Po přihlášení přejděte na řídicí panel Pusher a vytvořte svou první instanci Beams. Průvodce rychlým startem vás provede následujícími kroky:
Konfigurace APNs (Apple Push Notification service)
Všechny požadavky na push notifikace pro iOS zařízení procházejí službou Apple Push Notification service (APNs), která je doručuje na zařízení. Aby Pusher mohl tyto notifikace odesílat, musíme vygenerovat APNs Key. Přihlaste se do svého Apple Developer Portal. Přejděte do sekce „Keys“, kde můžete vytvořit nový klíč. Zadejte název klíče a ujistěte se, že je zaškrtnuto políčko „APNs“. Pokračujte a stáhněte klíč na svůj počítač. V dalším kroku tento klíč nahrajeme do řídicího panelu Pusher a nakonfigurujeme vaši iOS integraci.
Nahrání APNs klíče a Team ID
Po konfiguraci APNs klíče je dalším krokem jeho nahrání přes průvodce rychlým startem. Budeme také potřebovat vaše „Team ID“, které najdete ve svém Apple Developer Portal.
Krok 3: Integrace Beams SDK do vašeho iOS projektu
Nyní integrujete Beams SDK do svého iOS projektu. Tím odešlete `deviceToken` službě Pusher Beams, která spravuje jeho životní cyklus v případě změny nebo odinstalování aplikace uživatelem.
Instalace SDK (CocoaPods nebo Carthage)
Beams SDK je k dispozici pro CocoaPods i Carthage. Zvolte si nástroj, který vám je bližší.
- CocoaPods: Přidejte do svého `Podfile`:
pod 'PushNotifications'Poté spusťte:
pod install - Carthage: Přidejte do svého `Cartfile`:
github "pusher/push-notifications-swift"Spusťte `carthage update` a přetáhněte vygenerovaný `PushNotifications.framework` do vašeho Xcode projektu.
Konfigurace Xcode projektu
Před použitím SDK musíte povolit push notifikace ve vašem Xcode projektu. Vyberte svůj projekt v navigátoru projektu a klikněte na záložku „Capabilities“. Zapněte push notifikace přepnutím přepínače na „ON“.
Inicializace SDK a registrace zařízení
Importujte SDK do souboru `AppDelegate`:
import PushNotificationsVytvořte instanci a zaregistrujte zařízení pro vzdálené notifikace v metodě `application:didFinishLaunchingWithOptions:`:
let pushNotifications = PushNotifications.shared self.pushNotifications.start(instanceId: "YOUR_INSTANCE_ID") self.pushNotifications.registerForRemoteNotifications()APNs odpoví s `deviceToken` identifikujícím instanci vaší aplikace. Tento token je předán vaší aplikaci metodou `application:didRegisterForRemoteNotificationsWithDeviceToken:`. Zde byste měli zaregistrovat token u Beams:
self.pushNotifications.registerDeviceToken(deviceToken)Nakonec přihlaste své zařízení k zájmu, například „hello“:
self.pushNotifications.registerDeviceToken(deviceToken) { try? self.pushNotifications.addDeviceInterest(interest: "hello") }Když váš server publikuje push notifikaci na zájem „hello“, bude předána vaší aplikaci jako volání metody `application:didReceiveRemoteNotification:fetchCompletionHandler:` v `AppDelegate`:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) { print(userInfo) }Krok 4: Odesílání push notifikací
Push notifikace jsou spouštěny vašimi servery do služby Beams. Jakmile se zařízení používající vaši iOS aplikaci přihlásí k zájmu v naší službě, váš server pak může odeslat push notifikaci na toto zařízení publikováním na tento zájem.
Vytvořte soubor `publish-body.json` s tělem požadavku pro publikování:
{ "interests": [ "hello" ], "apns": { "aps": { "alert": { "title": "Ahoj", "body": "Ahoj, světe!🎉" } } } }Než spustíte `curl` příkaz, potřebujete získat ID instance a její tajný klíč. Tyto informace najdete v záložce „Keys“ na řídicím panelu Pusher pro vaši instanci Beams.

Nyní odešlete push notifikaci na svůj telefon spuštěním tohoto příkazu (nezapomeňte nahradit `$` proměnné):
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer $SECRET_KEY" \ -X POST "https://$INSTANCE_ID.pushnotifications.pusher.com/publish_api/v1/instances/$INSTANCE_ID/publishes" \ -d @publish-body.jsonDůležité: Push notifikace nefungují v simulátoru, ujistěte se, že spouštíte aplikaci na skutečném zařízení (iPhone, iPad). Doporučujeme také minimalizovat aplikaci stisknutím tlačítka Domů, abyste viděli push notifikaci, když dorazí.
Bonus: Odesílání push notifikací s bohatým obsahem (Rich Media)
Do push notifikací pro iOS zařízení můžete zahrnout bohatý obsah, jako jsou obrázky, GIFy, zvukové a video klipy. To může zvýšit míru otevření a zapojení do vaší aplikace.
Krok 1: Vytvoření Notification Service Extension
Zvolte File > New > Target a vyberte „Notification Service Extension“. Tato extenze zachytí určité vzdálené notifikace a umožní vám zpracovat obsah payloadu, včetně stahování a zobrazování vzdálených mediálních příloh, než se notifikace zobrazí uživateli.
Kód v metodě `didReceive(_:withContentHandler:)` by měl vypadat takto:
self.contentHandler = contentHandler bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent) // Get the custom data from the notification payload if let notificationData = request.content.userInfo["data"] as? [String: String] { // Grab the attachment if let urlString = notificationData["attachment-url"], let fileUrl = URL(string: urlString) { // Download the attachment URLSession.shared.downloadTask(with: fileUrl) { (location, response, error) in if let location = location { // Move temporary file to remove .tmp extension let tmpDirectory = NSTemporaryDirectory() let tmpFile = "file://".appending(tmpDirectory).appending(fileUrl.lastPathComponent) let tmpUrl = URL(string: tmpFile)! try! FileManager.default.moveItem(at: location, to: tmpUrl) // Add the attachment to the notification content if let attachment = try? UNNotificationAttachment(identifier: "", url: tmpUrl) { self.bestAttemptContent?.attachments = [attachment] } } // Serve the notification content self.contentHandler!(self.bestAttemptContent!) }.resume() } }Tento kód prohledává payload notifikace pro slovník s názvem „data“, který obsahuje klíč „attachment-url“. Pokud tento klíč existuje, stáhne médium z uvedené URL. Stáhnuté médium je uloženo do dočasného úložiště a je třeba z něj odstranit příponu `.tmp`, aby aplikace mohla správně interpretovat typ souboru a zobrazit jej.
Krok 2: Spuštění požadavku ze serveru
Aby iOS věděl, které notifikace má Service Extension zachytit, stačí do payloadu přidat tag `mutable-content` a nastavit ho na `1`. Dále přidejte URL mediální přílohy do payloadu ve vlastním slovníku, který jste pojmenovali „data“. Klíč v tomto slovníku musí být stejný jako ten, který jste použili ve svém Service Extension (`attachment-url`).
Příklad s Node.js:
pusher.notify([ 'hello' ], { apns: { aps: { alert: { title: "API nativních push notifikací Pusher", subtitle: "Podpora iOS 10!", body: "Nyní přidejte více obsahu do vašich Push Notifikací!" }, "mutable-content": 1, category: "pusher" }, data: { "attachment-url": "https://pusher.com/static_logos/320x320.png" } } });Posílání push notifikací s myNotifier: Rychlé a personalizované upozornění
myNotifier je API, které vám umožní posílat push notifikace přímo na váš mobilní telefon. Je to ideální řešení pro monitorování API, SaaS produktů, serverových aktualizací nebo pro zasílání upozornění z vašich vlastních Python skriptů. Možnosti jsou neomezené.
Začínáme s myNotifier
Začít s myNotifier je velmi jednoduché a zabere to méně než 5 minut.
Krok 1: Registrace a stažení aplikace
Zaregistrujte se na myNotifier (je to rychlé a zdarma). Poté si stáhněte aplikaci myNotifier z Apple App Store pro iOS. Po přihlášení v aplikaci s účtem, který jste si vytvořili, stiskněte pod záložkou „Profile“ tlačítko „Add This Device“. Nyní API ví, na který telefon má posílat notifikace. Můžete přidat více telefonů přihlášením se na další zařízení a jejich přidáním.
Krok 2: Psaní Python kódu
K odesílání HTTP požadavků na API použijeme Python modul `requests`. Pokud jej nemáte nainstalovaný, můžete jej nainstalovat spuštěním `pip3 install requests` v terminálu.
Vytvořte nový Python soubor, například `notification.py`, a vložte do něj následující kód:
import requests requests.post('https://api.mynotifier.app', { "apiKey": '---', # Zde vložte svůj API klíč "message": "Naše první notifikace!", "description": "To je super", "type": "info" # Může být: info, error, warning nebo success })Svůj `apiKey` získáte přihlášením se do webové aplikace myNotifier a přechodem na záložku „Account“, kde kliknete na „Reveal Api Key“. Zkopírujte klíč a vložte jej místo `---`.
Vlastnosti `message` a `description` mohou obsahovat cokoli, co chcete. Vlastnost `type` může být `info`, `error`, `warning` nebo `success`. Pokud není nic nastaveno, výchozí je `info`.

Krok 3: Odesílání notifikací
Nyní můžete kód spustit zadáním `python3 notification.py` v terminálu v adresáři, kde se nachází váš soubor. Pokud jste vše udělali správně, měli byste na svém telefonu obdržet svou první notifikaci. Historii všech notifikací si můžete prohlédnout na záložce „Dashboard“ ve webové aplikaci.
Srovnání: Pusher Beams vs. myNotifier
Obě služby nabízejí možnost posílat push notifikace, ale cílí na trochu jiné potřeby a scénáře použití.
| Funkce | Pusher Beams | myNotifier |
|---|---|---|
| Primární zaměření | Komplexní push notifikace pro velké aplikace a uživatelské báze | Osobní/monitorovací notifikace, jednoduché upozornění pro vývojáře |
| Složitost implementace | Vyšší (konfigurace APNs, detailní SDK integrace) | Nižší (rychlá registrace, jednoduché API volání) |
| Cílová skupina | Vývojáři aplikací, firmy, týmy | Individuální vývojáři, administrátoři, pro osobní použití |
| Podpora platformy | iOS, Android, Web | iOS, Android (primárně pro sebe) |
| Pokročilé funkce | „Interests“ (cílení skupin), správa tokenů, rich media | Jednoduché zprávy, historie notifikací |
| Cenový model | Free tier (1000 zařízení), placené plány pro větší rozsahy | Free tier, Pro plán pro více funkcí (není specifikováno pro notifikace) |
Často kladené otázky (FAQ)
Co jsou to push notifikace?
Push notifikace jsou krátké zprávy, které se zobrazují na mobilním zařízení uživatele, i když aplikace, která je odesílá, není aktivně používána. Slouží k rychlému informování uživatele o důležitých událostech, novinkách nebo akcích.
Proč bych měl(a) používat push notifikace?
Push notifikace jsou efektivní nástroj pro zvýšení zapojení uživatelů, udržení jejich pozornosti a pro generování návratnosti do vaší aplikace. Mohou být použity k posílání personalizovaných zpráv, upozornění na nové funkce, slevy, nebo připomenutí.
Fungují push notifikace v iOS simulátoru?
Ne, push notifikace nefungují v iOS simulátoru. K testování push notifikací musíte svou aplikaci spustit na skutečném iOS zařízení (iPhone, iPad).
Co je Apple Push Notification service (APNs)?
APNs je služba společnosti Apple, která zprostředkovává doručování push notifikací na iOS zařízení. Všechny push notifikace pro iOS zařízení musí projít touto službou.
Co je `deviceToken` a proč je důležitý?
`deviceToken` je jedinečný identifikátor, který APNs přidělí každé instanci vaší aplikace na konkrétním zařízení. Tento token je nezbytný k tomu, aby APNs věděly, na které zařízení mají notifikaci doručit. Služby jako Pusher Beams spravují životní cyklus těchto tokenů.
Mohu posílat notifikace více uživatelům najednou?
Ano, s oběma službami můžete posílat notifikace více uživatelům najednou. Pusher Beams k tomu používá koncept „Interests“, zatímco myNotifier umožňuje přidat více zařízení do svého účtu a posílat notifikace na všechna registrovaná zařízení.
Jak mohu posílat push notifikace s rich media obsahem?
Pro odesílání push notifikací s bohatým obsahem (obrázky, GIFy, video) v iOS potřebujete implementovat „Notification Service Extension“ ve svém Xcode projektu. Tato extenze vám umožní zachytit notifikaci a stáhnout a zobrazit mediální přílohu před jejím zobrazením uživateli. Serverová payload musí obsahovat `mutable-content` tag a URL k médiu v datovém slovníku.
Ať už potřebujete komplexní řešení pro velkou uživatelskou bázi s pokročilými funkcemi, nebo jen jednoduchý způsob, jak si posílat personalizované notifikace pro monitorovací účely, Pusher Beams a myNotifier nabízejí spolehlivé cesty, jak dosáhnout vašich cílů. Vyberte si nástroj, který nejlépe odpovídá vašim potřebám, a začněte využívat sílu push notifikací k lepšímu propojení s vašimi uživateli.
Chceš-li si přečíst další články podobné jako Jak posílat push notifikace na iPhone?, navštiv kategorii iPhone.
