Kurz: Vytváření nabízených oznámení v aplikaci pro iOS

Tento kurz vás provede vytvářením nabízených oznámení v aplikaci pro iOS pomocí sady SDK pro chat služby Azure Communication Services.

Nabízená oznámení upozorňují uživatele příchozích zpráv ve vlákně chatu, když mobilní aplikace není spuštěná v popředí. Azure Communication Services podporuje dvě verze nabízených oznámení:

  • Základní verze: Na ikoně aplikace se zobrazí číslo odznáček, zařízení přehraje zvuk oznámení a zobrazí se automaticky otevírané upozornění.

    Snímek obrazovky se základní verzí nabízeného oznámení

  • Pokročilá verze: Kromě funkcí podporovaných v základní verzi můžete upravit název a náhled zprávy v banneru upozornění.

    Snímek obrazovky s pokročilou verzí nabízeného oznámení

V tomto kurzu se naučíte:

  • Nastavte certifikát služby Apple Push Notification Service (APNs).
  • Nakonfigurujte Xcode pro nabízená oznámení.
  • Implementujte základní nebo pokročilou verzi nabízených oznámení.
  • Otestujte oznámení ve vaší aplikaci.
  • Nastavte automatické prodlužování registrace nabízených oznámení.

Stažení kódu

Získejte přístup k ukázkovém kódu pro tento kurz na GitHubu.

Požadavky

  • Dokončete všechny požadované kroky v rychlém startu: Přidání chatu do aplikace.

  • Vytvořte centrum oznámení Azure ve stejném předplatném jako prostředek Komunikační služby a pak propojte centrum oznámení s prostředkem služby Communication Services. Viz Zřizování centra oznámení.

Vytvořte certifikát APNs .p12 a nastavte ho v centru oznámení.

Pokud nejste interním zákazníkem Microsoftu, proveďte všechny kroky v následujícím postupu.

Pokud jste interní zákazník Microsoftu, odešlete lístek a zadejte ID sady prostředků vaší aplikace, abyste získali certifikát .p12. Pak přejděte k poslednímu kroku v následujícím postupu.

  1. Přihlaste se k portálu Apple Developer Portal.

  2. Přejděte na Certifikáty, Identifikátory a identifikátory identifikátorů>>aplikací a pak vyberte ID aplikace přidružené k vaší aplikaci.

    Snímek obrazovky znázorňující výběry pro výběr ID aplikace

  3. Na stránce ID aplikace vyberte Možnosti nabízených>oznámení a pak vyberte Uložit.

    Snímek obrazovky znázorňující možnosti pro úpravu konfigurace ID aplikace

  4. V dialogovém okně Upravit možnosti aplikace, které se zobrazí, vyberte Potvrdit.

    Snímek obrazovky znázorňující tlačítko Potvrdit pro úpravy funkcí aplikace

  5. Na stránce ID vaší aplikace vyberte Možnosti>Nabízená oznámení>Konfigurovat a pak proveďte následující volbu:

    • Pro testování nabízených oznámení při vývoji aplikace pro iOS vyberte tlačítko Vytvořit certifikát v části Vývojový certifikát SSL.
    • Pro odesílání nabízených oznámení v produkčním prostředí vyberte tlačítko Vytvořit certifikát v části Produkční certifikát SSL.

    Snímek obrazovky znázorňující možnosti vytvoření vývojového certifikátu nebo produkčního certifikátu

  6. Oblast Vytvořit nový certifikát se zobrazí na stránce Certifikáty, Identifikátory a Profily .

    Snímek obrazovky znázorňující možnost nahrání žádosti o podepsání certifikátu

    V této oblasti nahrajete žádost o podepsání certifikátu (CSR):

    1. Na nové kartě prohlížeče postupujte podle této stránky nápovědy Apple a vytvořte CSR a uložte soubor jako name.cer aplikace. Pokyny zahrnují použití Pomocníka pro certifikát k vyžádání certifikátu a vyplnění informací o certifikátu.

      Snímek obrazovky znázorňující výběry pro vyžádání certifikátu od certifikační autority

      Snímek obrazovky znázorňující příklad vyplnění informací o certifikátu

    2. Přetáhněte soubor .cer do oblasti Zvolit soubor . Pak vyberte Pokračovat v pravém horním rohu.

      Snímek obrazovky oblasti pro výběr souboru certifikátu

  7. Vyberte položku Stáhnout.

    Snímek obrazovky s tlačítkem pro stažení certifikátu

  8. Uložte soubor místně ve formátu .p12.

    Snímek obrazovky znázorňující oblast pro uložení souboru certifikátu

  9. Otevřete .cer soubor, který jste stáhli. V aplikaci Keychain Access vyberte certifikát, klikněte na něj pravým tlačítkem myši a exportujte certifikát ve formátu .p12.

  10. Přejděte do centra oznámení. V části Nastavení vyberte Apple (APNS). Pak vyplňte podrobnosti o certifikátu:

    • V režimu ověřování vyberte Certifikát.
    • Pro nahrání certifikátu nahrajte soubor .p12, který jste právě vytvořili.
    • V režimu aplikace vyberte režim podle potřeby.

    Po zadání všech informací vyberte Uložit.

    Snímek obrazovky znázorňující nastavení aplikace a certifikátu pro centrum oznámení

Konfigurace Xcode

  1. V Xcode přejděte do možností podepisování a funkcí.

  2. Přidejte funkci tak , že vyberete + Schopnost a pak vyberete Nabízená oznámení.

  3. Přidejte další funkci výběrem + Možnosti a pak vyberte Režimy pozadí.

  4. V části Režimy pozadí vyberte Vzdálená oznámení.

    Snímek obrazovky znázorňující přidání nabízených oznámení a režimů pozadí v Xcode

  5. V případě cíle podů – AzureCore nastavte jako Ne pouze rozhraní API bezpečné pro rozšíření aplikace.

Implementace nabízených oznámení

Základní verze

Pokud chcete implementovat základní verzi nabízených oznámení, musíte se zaregistrovat pro vzdálená oznámení pomocí služby APN. Informace o související implementaci v AppDelegate.swift najdete v ukázkovém kódu.

Rozšířená verze

Pokud chcete implementovat pokročilou verzi nabízených oznámení, musíte do aplikace zahrnout následující položky. Důvodem je, že šifrování obsahu zákazníka (například obsah chatové zprávy a zobrazované jméno odesílatele) v datových částech nabízených oznámení vyžaduje určitá alternativní řešení.

Úložiště dat pro šifrovací klíče

Vytvořte trvalé úložiště dat v zařízeních s iOSem. Toto úložiště dat by mělo být schopné sdílet data mezi hlavní aplikací a rozšířeními aplikací.

V ukázkovém kódu pro tento kurz zvolte skupiny aplikací jako úložiště dat provedením těchto akcí:

Rozšíření služby oznámení

Implementujte rozšíření služby oznámení, které je součástí hlavní aplikace. Toto rozšíření aplikace se používá k dešifrování datové části nabízených oznámení, když ji zařízení obdrží.

  1. V dokumentaci Apple přejděte na Přidání rozšíření aplikace služby do projektu a postupujte podle pokynů.

  2. V dokumentaci Apple přejděte k implementaci metod obslužné rutiny rozšíření. Apple poskytuje výchozí kód pro dešifrování dat a můžete postupovat podle celkové struktury tohoto kurzu. Vzhledem k tomu, že k dešifrování používáte sadu SDK chatu, musíte nahradit část, která // Try to decode the encrypted message data začíná přizpůsobenou logikou. Informace o související implementaci v NotificationService.swift najdete v ukázkovém kódu.

Implementace protokolu PushNotificationKeyStorage

Protokol PushNotificationKeyStorage se vyžaduje pro pokročilou verzi nabízených oznámení. Můžete použít výchozí AppGroupPushNotificationKeyStorage třídu, kterou poskytuje sada SDK chatu. Pokud skupiny aplikací nepoužíváte jako úložiště klíčů nebo pokud chcete přizpůsobit metody úložiště klíčů, vytvořte vlastní třídu, která odpovídá PushNotificationKeyStorage protokolu.

PushNotificationKeyStorage definuje dvě metody:

  • onPersistKey(encryptionKey:expiryTime): Tato metoda se používá k zachování šifrovacího klíče v úložišti zařízení s iOSem uživatele. Sada SDK chatu nastaví jako dobu vypršení platnosti šifrovacího klíče 45 minut. Pokud chcete, aby se nabízená oznámení projevila déle než 45 minut, musíte naplánovat chatClient.startPushNotifications(deviceToken:) volání častěji (například každých 15 minut), aby bylo možné zaregistrovat nový šifrovací klíč před vypršením platnosti starého klíče.

  • onRetrieveKeys() -> [String]: Tato metoda slouží k načtení platných klíčů, které byly uloženy dříve. Máte flexibilitu poskytovat přizpůsobení na základě úložiště dat, které jste zvolili dříve.

V rozšíření protokolu poskytuje sada SDK chatu decryptPayload(notification:) -> PushNotificationEvent implementaci metody, kterou můžete použít. Informace o související implementaci v NotificationService.swift najdete v ukázkovém kódu.

Testování oznámení

  1. Vytvořte vlákno chatu s uživatelem A a uživatelem B.

  2. Stáhněte si úložiště GitHub pro ukázkové aplikace.

  3. Vložte hodnoty a hodnoty uživatele <ACESS_TOKEN> do souboru AppSettings.plist.<ACS_RESOURCE_ENDPOINT>

  4. Nastavte možnost Povolit bitcode na ne pro dva cíle podu: AzureCommunicationChat a Trouter.

  5. Připojte zařízení s iOSem k macu a spusťte program. Po zobrazení výzvy k autorizaci nabízených oznámení na zařízení vyberte Povolit.

  6. Jako uživatel B odešlete chatovou zprávu. Ověřte, že uživatel A obdrží nabízené oznámení na zařízení s iOSem.

Implementace prodloužení registrace

Aby Microsoft poskytl zabezpečenou chatovací službu, registrace nabízených oznámení na zařízeních s iOSem zůstane platná jenom 45 minut. Pokud chcete zachovat funkčnost nabízených oznámení, musíte implementovat obnovení registrace v klientské aplikaci.

Tento kurz navrhuje dvě řešení, která jsou v souladu s oficiálními pokyny společnosti Apple. Doporučujeme, abyste obě řešení implementovali společně, abyste zvýšili jejich efektivitu.

Poznámka:

Účinnost obou řešení můžou ovlivnit různé faktory. Například stav baterie zařízení, podmínky sítě a omezení specifická pro iOS můžou ovlivnit schopnost aplikace spouštět úlohy na pozadí. Další informace najdete ve videu o provádění pozadí aplikace a v článku o odesílání informací o aplikaci od Společnosti Apple.

Řešení 1: Úlohy na pozadí

Úlohy na pozadí nabízejí způsob, jak provádět aktivity i v případě, že aplikace není v popředí. Když implementujete úlohu na pozadí, může vaše aplikace požádat o dokončení konkrétní úlohy, například prodloužení registrace nabízených oznámení.

Následující části popisují, jak můžete k prodloužení registrace použít úlohy na pozadí.

Konfigurace automatické aktualizace přístupových tokenů uživatelů

Pokud chcete zajistit nepřerušovaný přístup ke chatovacím službám, musíte udržovat platné přístupové tokeny uživatelů. Tokeny mají obvykle výchozí dobu platnosti 24 hodin, po které vyprší platnost a vyžadují prodloužení. Implementace mechanismu automatické aktualizace pomáhá zaručit platnost tokenu při každé aktivaci chatovací aplikace.

Sada CHAT SDK zjednodušuje správu tokenů automatizací procesu aktualizace při implementaci vlastního obnovovacího modulu přístupového tokenu. Provedením následujících kroků nakonfigurujte chatovací aplikaci tak, aby podporovala automatickou aktualizaci tokenů:

  1. Abyste zajistili, že chatovací aplikace udržuje nepřetržitý a zabezpečený přístup uživatelů, musíte implementovat úroveň služby vyhrazenou pro vydávání tokenů. Jednou z možností je použít Azure Functions pro tento účel.

    Pokud chcete vytvořit funkci Azure, přečtěte si článek o vytvoření důvěryhodné služby pro přístup uživatelů pomocí služby Azure Functions . Popisuje, jak nastavit aplikaci funkcí a nasadit potřebný kód pro vydávání tokenů.

  2. Po konfiguraci funkce Azure:

    1. Získejte adresu URL vystavitele tokenu z webu Azure Portal. Vaše chatovací aplikace používá tuto adresu URL k vyžádání nových tokenů.

    2. Vytvořte a integrujte obnovovací token v chatovací aplikaci. Tato komponenta požaduje nové tokeny a inicializuje chatovacího klienta pro bezproblémové automatické prodlužování platnosti tokenů.

      Ukázkový kód pro obnovovací nástroj tokenu a jeho integrace s chatovacím klientem je k dispozici v úložišti GitHub pro ukázkové aplikace.

Povolení a plánování úloh na pozadí

Pokud chcete v aplikaci pro iOS aktivovat a naplánovat úlohy na pozadí, postupujte podle pokynů v článku Apple Použití úloh na pozadí k aktualizaci aplikace.

Praktickou implementaci najdete v úložišti GitHubu, kde najdete ukázkové aplikace. Poskytnutá ukázka používá BGProcessingTask nakonfigurovanou konfiguraci k tomu, aby se v budoucnu neskončila jedna minuta a demonstruje, jak efektivně načítat data na pozadí.

Řešení 2: Vzdálené oznámení

Vzdálené oznámení je mechanismus pro aplikace pro iOS ke spouštění úloh na pozadí v reakci na externí triggery. Vzdálená oznámení můžete použít pro úlohy, jako je aktualizace registrací bez zásahu uživatele.

Použití vzdálených oznámení ke spuštění úlohy na pozadí:

  1. Implementujte aktivační mechanismus.

    Jako aktivační mechanismus můžete například použít aplikaci funkcí Azure. Umožňuje spouštět kód v reakci na různé triggery, včetně požadavků HTTP, takže je užitečné pro inicializování tichých nabízených oznámení. Nezapomeňte implementovat registr zařízení na vaší straně, aby aplikace funkcí věděla, kde se mají oznámení doručit.

  2. Nastavte centrum oznámení.

    Služba Azure Notification Hubs poskytuje škálovatelnou infrastrukturu nabízených oznámení, která může odesílat oznámení na libovolnou platformu (iOS, Android, Windows atd.) z jakéhokoli back-endu (cloudu nebo místního prostředí).

    Můžete znovu použít stejné centrum oznámení, které používáte pro běžná nabízená oznámení. Pokud chcete nastavit nový, přečtěte si dokumentaci ke službě Azure Notification Hubs.

  3. Nakonfigurujte aplikaci funkcí Azure pro běžná oznámení.

    Upravte aplikaci funkcí tak, aby pravidelně odesílala vzdálená oznámení prostřednictvím centra oznámení. Tato oznámení se přeposílají do služby APN a přesměrují se na zadané zařízení. Další pokyny najdete v tématu Výstupní vazba Notification Hubs pro Azure Functions.

  4. Zpracování oznámení v aplikaci

    V aplikaci pro iOS implementujte metodu instance aplikace, která aktivuje automatickou aktualizaci registrace při přijetí tichého oznámení.

Další informace najdete v článku Apple Nastavení vzdáleného serveru oznámení.