Kurz: Odesílání nabízených oznámení do aplikací Xamarin.iOS pomocí služby Azure Notification Hubs

Přehled

V tomto kurzu zjistíte, jak používat Azure Notification Hubs k odesílání nabízených oznámení do aplikace systému iOS. Vytvoříte prázdnou aplikaci Xamarin.iOS, která přijímá nabízená oznámení pomocí služby Apple Push Notification Service (APNs).

Jakmile budete hotovi, budete moct používat vaše centrum oznámení k všesměrovému vysílání nabízených oznámení pro všechna zařízení používající vaši aplikaci. Dokončený kód je k dispozici v ukázce aplikace NotificationHubs.

V tomto kurzu provedete následující úkoly, kterými vytvoříte/aktualizujete kód:

  • Generování souboru s žádostí o podepsání certifikátu
  • Registrace aplikace pro nabízená oznámení
  • Vytvoření zřizovacího profilu pro aplikaci
  • Nakonfigurujete v centru oznámení nabízená oznámení pro iOS
  • Odešlete nabízená oznámení

Požadavky

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

  • Poslední verze Xcode

  • Zařízení kompatibilní s iOS 10 (nebo novější verzí)

  • Členství v programu pro vývojáře Apple.

  • Visual Studio pro Mac

    Poznámka:

    Z důvodu požadavků na konfiguraci pro nabízená oznámení iOS musíte nasadit a otestovat vzorovou aplikaci na fyzickém zařízení iOS (iPhone nebo iPad) namísto simulátoru.

Dokončení tohoto kurzu je předpokladem pro všechny ostatní kurzy služby Notification Hubs pro aplikace Xamarin.iOS.

Vygenerování souboru žádosti o podepsání certifikátu

Služba APNs (Apple Push Notification Service) používá k ověřování nabízených oznámení certifikáty. Pokud chcete vytvořit nabízený certifikát pro odesílání a přijímání oznámení, postupujte podle těchto pokynů. Další informace o těchto konceptech najdete v oficiální dokumentaci ke službě Apple Push Notification Service.

Vygenerujte soubor žádosti o podepsání certifikátu (CSR), který Apple používá k vygenerování podepsaného nabízeného certifikátu.

  1. Na Macu spusťte nástroj Keychain Access. Dá se otevřít ze složky Nástroje nebo z jiné složky na Launchpadu.

  2. Vyberte Přístup ke klíčence, rozbalte Položku Pomocníka s certifikátem a pak vyberte Požádat o certifikát od certifikační autority.

    Use Keychain Access to request a new certificate

    Poznámka:

    Ve výchozím nastavení access řetězce klíčů vybere první položku v seznamu. Může se jednat o problém, pokud jste v kategorii Certifikáty a certifikační autorita Apple Worldwide Developer Relations Není první položkou v seznamu. Před vygenerováním žádosti o podepsání certifikátu se ujistěte, že máte položku, která není klíčem, nebo je vybraný klíč certifikační autority Apple Worldwide Developer Relations.

  3. Vyberte svoji e-mailovou adresu uživatele, zadejte hodnotu Společného názvu , ujistěte se, že jste zadali Uložené na disk, a pak vyberte Pokračovat. E-mailová adresa certifikační autority ponechte prázdnou, protože není nutná.

    Required certificate information

  4. Do příkazu Uložit jako zadejte název souboru CSR, vyberte umístění v umístění Kde a pak vyberte Uložit.

    Choose a file name for the certificate

    Tato akce uloží soubor CSR do vybraného umístění. Výchozí umístění je Desktop. Zapamatujte si umístění tohoto souboru.

Dále zaregistrujte aplikaci v Apple, povolte nabízená oznámení a nahrajte exportovanou CSR a vytvořte certifikát push.

Registrace aplikace pro nabízená oznámení

Pokud chcete odesílat nabízená oznámení do aplikace pro iOS, zaregistrujte aplikaci v Apple a zaregistrujte si také nabízená oznámení.

  1. Pokud jste aplikaci ještě nezaregistrovali, přejděte na portál pro zřizování pro iOS v Centru pro vývojáře Apple. Přihlaste se k portálu pomocí Apple ID a vyberte Identifikátory. Pak vyberte + , pokud chcete zaregistrovat novou aplikaci.

    iOS Provisioning Portal App IDs page

  2. Na obrazovce Zaregistrovat nový identifikátor vyberte přepínač ID aplikací. Potom vyberte Pokračovat.

    iOS Provisioning Portal register new ID page

  3. Aktualizujte následující tři hodnoty nové aplikace a pak vyberte Pokračovat:

    • Popis: Zadejte popisný název aplikace.

    • ID sady: Zadejte ID sady prostředků formuláře Organization Identifier.Product Name, jak je uvedeno v Průvodci distribucí aplikací. Hodnoty identifikátoru organizace a názvu produktu musí odpovídat identifikátoru organizace a názvu produktu, který použijete při vytváření projektu Xcode. Na následujícím snímku obrazovky se hodnota NotificationHubs používá jako identifikátor organizace a jako název produktu se použije hodnota GetStarted . Ujistěte se, že hodnota identifikátoru svazku odpovídá hodnotě v projektu Xcode, aby Xcode používal správný profil publikování.

      iOS Provisioning Portal register app ID page

    • Nabízená oznámení: V části Možnosti zkontrolujte možnost Nabízená oznámení.

      Form to register a new App ID

      Tato akce vygeneruje ID aplikace a požadavky, které potvrdíte. Vyberte Pokračovat a pak výběrem možnosti Zaregistrovat potvrďte nové ID aplikace.

      Confirm new App ID

      Po výběru možnosti Zaregistrovat se na stránce Certifikáty, Identifikátory a Profily zobrazí nové ID aplikace jako řádek.

  4. Na stránce Certifikáty, Identifikátory a profily v části Identifikátory vyhledejte položku řádku ID aplikace, kterou jste právě vytvořili, a vyberte její řádek, aby se zobrazila obrazovka Upravit konfiguraci ID aplikace.

Vytvoření certifikátu pro Notification Hubs

Aby centrum oznámení fungovalo s APNS, vyžaduje se certifikát. Můžete to provést jedním ze dvou způsobů:

  1. Vytvořte soubor .p12, který lze nahrát přímo do centra oznámení.
  2. Vytvořte soubor .p8 , který lze použít pro ověřování na základě tokenu (novější přístup).

Novější přístup má řadu výhod (ve srovnání s používáním certifikátů), jak je uvedeno v ověřování založeném na tokenech (HTTP/2) pro APNS. Pro oba přístupy jsou však k dispozici kroky.

MOŽNOST 1: Vytvoření nabízeného certifikátu .p12, který lze nahrát přímo do centra oznámení

  1. Posuňte se dolů na zaškrtnutou možnost Nabízená oznámení a pak vyberte Konfigurovat pro vytvoření certifikátu.

    Edit App ID page

  2. Zobrazí se okno Certifikáty SSL služby Apple Push Notification. V části Vývojový certifikát SSL vyberte tlačítko Vytvořit certifikát.

    Create certificate for App ID button

    Zobrazí se obrazovka Vytvořit nový certifikát .

    Poznámka:

    Tento kurz používá vývojový certifikát, který vaše aplikace používá k vygenerování jedinečného tokenu zařízení. Stejný postup se používá při registraci produkčního certifikátu. Dejte pozor, abyste při odesílání oznámení používali stejný typ certifikátu.

  3. Vyberte Zvolit soubor, přejděte do umístění, kam jste soubor CSR uložili z prvního úkolu, a potom poklikáním na název certifikátu ho načtěte. Potom vyberte Pokračovat.

  4. Jakmile portál vytvoří certifikát, vyberte tlačítko Stáhnout . Uložte certifikát a zapamatujte si umístění, do kterého se uloží.

    Generated certificate download page

    Certifikát se stáhne a uloží do počítače ve složce Stažené soubory .

    Locate certificate file in the Downloads folder

    Poznámka:

    Ve výchozím nastavení se stažený vývojový certifikát jmenuje aps_development.cer.

  5. Poklikejte na stažený nabízený certifikát aps_development.cer. Tato akce nainstaluje nový certifikát do Klíčenky, jak je znázorněno na následujícím obrázku:

    Keychain access certificates list showing new certificate

    Poznámka:

    I když se název v certifikátu může lišit, bude mít předponu Apple Development iOS Push Services.

  6. V nástroji Keychain Access, klikněte pravým tlačítkem na nový nabízený certifikát, který jste vytvořili v kategorii Certifikáty. Vyberte Exportovat, pojmenujte soubor, vyberte formát .p12 a pak vyberte Uložit.

    Export certificate as p12 format

    Certifikát můžete chránit heslem, ale je to volitelné. Chcete-li obejít vytváření hesla, klikněte na tlačítko OK . Poznamenejte si název souboru a umístění exportovaného certifikátu .p12. Používají se k povolení ověřování pomocí služby APN.

    Poznámka:

    Název a umístění vašeho souboru .p12 se může lišit od toho, co je znázorněno v tomto kurzu.

MOŽNOST 2: Vytvoření certifikátu .p8, který lze použít pro ověřování na základě tokenu

  1. Poznamenejte si následující podrobnosti:

    • Předpona ID aplikace (toto je ID týmu)
    • ID sady prostředků
  2. Zpět v certifikátech, identifikátory a profily klikněte na Klíče.

    Poznámka:

    Pokud už máte klíč nakonfigurovaný pro APNS, můžete znovu použít certifikát .p8, který jste stáhli hned po jeho vytvoření. Pokud ano, můžete ignorovat kroky 35.

  3. Kliknutím na + tlačítko (nebo na tlačítko Vytvořit klíč ) vytvořte nový klíč.

  4. Zadejte vhodnou hodnotu názvu klíče, pak zaškrtněte možnost Služba Apple Push Notifications (APNs) a potom klikněte na Pokračovat a potom na další obrazovce zaregistrujte.

  5. Klepněte na tlačítko Stáhnout a přesuňte soubor .p8 (s předponou AuthKey_) do zabezpečeného místního adresáře a klikněte na tlačítko Hotovo.

    Poznámka:

    Nezapomeňte mít soubor .p8 na bezpečném místě (a uložit zálohu). Po stažení klíče se nedá znovu stáhnout, protože se odebere kopie serveru.

  6. V části Klíče klikněte na klíč, který jste právě vytvořili (nebo existující klíč, pokud jste se rozhodli použít tento klíč).

  7. Poznamenejte si hodnotu ID klíče.

  8. V vhodné aplikaci, jako je Visual Studio Code , otevřete certifikát .p8 a poznamenejte si hodnotu klíče. Toto je hodnota mezi -----BEGIN PRIVATE KEY----- a -----END PRIVATE KEY----- .

    -----BEGIN PRIVATE KEY-----
    <key_value>
    -----END PRIVATE KEY-----
    

    Poznámka:

    Toto je hodnota tokenu, která se použije později ke konfiguraci centra oznámení.

Na konci těchto kroků byste měli mít následující informace pro pozdější použití v části Konfigurace centra oznámení s informacemi služby APN:

  • ID týmu (viz krok 1)
  • ID sady prostředků (viz krok 1)
  • ID klíče (viz krok 7)
  • Hodnota tokenu, tj. hodnota klíče .p8 (viz krok 8)

Vytvoření zřizovacího profilu pro aplikaci

  1. Vraťte se na portál pro zřizování iOS, vyberte Certifikáty, Identifikátory a profily, v nabídce vlevo vyberte Profily a pak vyberte + vytvořit nový profil. Zobrazí se obrazovka Registrace nového zřizovacího profilu .

  2. Jako typ zřizovacího profilu vyberte Vývoj aplikací pro iOS v části Vývoj a pak vyberte Pokračovat.

    Provisioning profile list

  3. Dále vyberte ID aplikace, které jste vytvořili v rozevíracím seznamu ID aplikace, a vyberte Pokračovat.

    Select the App ID

  4. V okně Vybrat certifikáty vyberte vývojový certifikát, který používáte pro podepisování kódu, a vyberte Pokračovat. Tento certifikát není certifikát nabízených oznámení, který jste vytvořili. Pokud neexistuje, musíte ho vytvořit. Pokud certifikát existuje, přejděte k dalšímu kroku. Vytvoření vývojového certifikátu, pokud neexistuje:

    1. Pokud vidíte, že nejsou k dispozici žádné certifikáty, vyberte Vytvořit certifikát.
    2. V části Software vyberte Vývoj apple. Potom vyberte Pokračovat.
    3. Na obrazovce Vytvořit nový certifikát vyberte Zvolit soubor.
    4. Přejděte na certifikát žádosti o podepsání certifikátu, který jste vytvořili dříve, vyberte ho a pak vyberte Otevřít.
    5. Zvolte Pokračovat.
    6. Stáhněte si vývojový certifikát a zapamatujte si umístění, do kterého je uložený.
  5. Vraťte se na stránku Certifikáty, Identifikátory a Profily , v nabídce vlevo vyberte Profily a pak vyberte + vytvořit nový profil. Zobrazí se obrazovka Registrace nového zřizovacího profilu .

  6. V okně Vybrat certifikáty vyberte právě vytvořený vývojový certifikát. Potom vyberte Pokračovat.

  7. Dále vyberte zařízení, která chcete použít k testování, a vyberte Pokračovat.

  8. Nakonec v části Název zřizovacího profilu zvolte název profilu a vyberte Vygenerovat.

    Choose a provisioning profile name

  9. Po vytvoření nového zřizovacího profilu vyberte Stáhnout. Zapamatujte si umístění, do kterého se uloží.

  10. Přejděte do umístění zřizovacího profilu a poklikáním na něj nainstalujte na vývojový počítač Xcode.

Vytvořit centrum oznámení

V této části vytvoříte centrum oznámení a nakonfigurujete ověřování pomocí služby APNs pomocí certifikátu push .p12 nebo ověřování založeného na tokenu. Pokud chcete použít centrum oznámení, které jste už vytvořili, můžete přeskočit ke kroku 5.

  1. Přihlaste se k portálu Azure.

  2. V nabídce vlevo vyberte Všechny služby . A screenshot showing select All Services for an existing namespace.

  3. Do textového pole Filtrovat služby zadejte Notification Hubs. Výběrem ikony hvězdičky vedle názvu služby přidejte službu do oddílu OBLÍBENÉ V levé nabídce. Vyberte Notification Hubs.

    A screenshot showing how to filter for notification hubs.

  4. Na stránce Notification Hubs vyberte vytvořit na panelu nástrojů.

    A screenshot showing how to create a new notification hub.

  5. Na kartě Základy na stránce Centra oznámení proveďte následující kroky:

    1. V předplatném vyberte název předplatného Azure, které chcete použít, a pak vyberte existující skupinu prostředků nebo vytvořte novou.

    2. Do podrobností oboru názvů zadejte jedinečný název nového oboru názvů.

    3. Obor názvů obsahuje jedno nebo více center oznámení, proto do podrobností centra oznámení zadejte název centra.

    4. V rozevíracím seznamu Umístění vyberte hodnotu. Tato hodnota určuje umístění, ve kterém chcete centrum vytvořit.

      Screenshot showing notification hub details.

    5. Zkontrolujte možnost Zóny dostupnosti. Pokud jste vybrali oblast, která má zóny dostupnosti, je ve výchozím nastavení zaškrtnuté políčko. Zóny dostupnosti je placená funkce, takže do vaší úrovně se přidá další poplatek.

    6. Zvolte možnost zotavení po havárii: Žádná, Spárovaná oblast obnovení nebo Flexibilní oblast obnovení. Pokud zvolíte spárovanou oblast obnovení, zobrazí se oblast převzetí služeb při selhání. Pokud vyberete flexibilní oblast obnovení, vyberte si z rozevíracího seznamu oblastí obnovení.

      Screenshot showing availability zone details.

    7. Vyberte Vytvořit.

  6. Po dokončení nasazení vyberte Přejít k prostředku.

Konfigurace centra oznámení s informacemi o službě APN

V části Notification Services (APNS) vyberte Apple (APNS) a pak postupujte podle postupu, který jste zvolili dříve v části Vytvoření certifikátu pro Notification Hubs .

Poznámka:

Pokud sestavíte aplikaci s distribučním profilem App Storu nebo ad hoc, použijte produkční režim pro aplikaci. To umožní vašemu zařízení odesílat nabízená oznámení uživatelům, kteří si aplikaci koupili ve Storu.

MOŽNOST 1: Použití certifikátu push .p12

  1. Vyberte Certifikát.

  2. Vyberte ikonu souboru.

  3. Vyberte soubor .p12, který jste vyexportovali dříve, a pak vyberte Otevřít.

  4. V případě potřeby zadejte správné heslo.

  5. Vyberte režim Sandbox.

    Configure APNs certification in Azure portal

  6. Zvolte Uložit.

MOŽNOST 2: Použití ověřování založeného na tokenech

  1. Vyberte Token.

  2. Zadejte následující hodnoty, které jste získali dříve:

    • ID klíče
    • ID sady prostředků
    • ID týmu
    • Token
  3. Volba sandboxu

  4. Zvolte Uložit.

Teď jste centrum oznámení nakonfigurovali pomocí služby APN. Máte také připojovací řetězec k registraci aplikace a odesílání nabízených oznámení.

Připojte aplikaci k centru oznámení

Vytvoření nového projektu

  1. V sadě Visual Studio vytvořte nový projekt pro iOS, vyberte šablonu Aplikace s jedním zobrazením a klikněte na Další.

    Visual Studio - Select Application Type

  2. Zadejte název aplikace a identifikátor organizace a pak klikněte na Další a pak na Vytvořit.

  3. V zobrazení Řešení dvakrát klikněte na soubor Info.plist a v části Identita se ujistěte, že identifikátor sady odpovídá identifikátoru použitému při vytváření profilu zřizování. V části Podepisování zkontrolujte, že v části Tým je vybraný váš vývojářský účet, možnost Automatically manage signing (Automaticky se starat o podepisování) je vybraná a váš podpisový certifikát a profil zřizování jsou automaticky vybrané.

    Visual Studio- iOS App Config

  4. V zobrazení Řešení poklikejte na Entitlements.plist políčko Povolit nabízená oznámení a ujistěte se, že je zaškrtnuté políčko Povolit nabízená oznámení .

    Visual Studio- iOS Entitlements Config

  5. Přidejte balíček zasílání zpráv Azure. V zobrazení Řešení klikněte pravým tlačítkem a na projekt a vyberte Přidat>Přidat balíčky NuGet. Vyhledejte balíček Xamarin.Azure.NotificationHubs.iOS a přidejte ho do svého projektu.

  6. Přidejte do třídy nový soubor, pojmenujte ho Constants.cs a přidejte následující proměnné a nahraďte zástupné symboly hubnameDefaultListenSharedAccessSignature řetězcového literálu a výše uvedené hodnoty.

    // Azure app-specific connection string and hub path
    public const string ListenConnectionString = "<Azure DefaultListenSharedAccess Connection String>";
    public const string NotificationHubName = "<Azure Notification Hub Name>";
    
  7. Do AppDelegate.cspříkazu přidejte následující příkaz using:

    using WindowsAzure.Messaging.NotificationHubs;
    using UserNotifications
    
  8. Vytvořte implementaci v MSNotificationHubDelegate :AppDelegate.cs

    public class AzureNotificationHubListener : MSNotificationHubDelegate
    {
        public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message)
        {
    
        }
    }
    
  9. V AppDelegate.csnástroji , aktualizujte FinishedLaunching() tak, aby odpovídaly následujícímu kódu:

    public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
    {
        // Set the Message listener
        MSNotificationHub.SetDelegate(new AzureNotificationHubListener());
    
        // Start the SDK
        MSNotificationHub.Start(ListenConnectionString, NotificationHubName);
    
        return true;
    }
    
  10. V AppDelegate.csimplementujte metodu DidReceivePushNotificationAzureNotificationHubListener pro třídu:

    public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message)
    {
        // This sample assumes { aps: { alert: { title: "Hello", body: "World" } } }
        var alertTitle = message.Title ?? "Notification";
        var alertBody = message.Body;
    
        var myAlert = UIAlertController.Create(alertTitle, alertBody, UIAlertControllerStyle.Alert);
        myAlert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
        UIApplication.SharedApplication.KeyWindow.RootViewController.PresentViewController(myAlert, true, null);
    }
    
  11. Spusťte aplikaci v zařízení.

Odešlete nabízená oznámení

Příjem oznámení ve vaší aplikaci můžete otestovat pomocí možnosti Testovací odeslání na webu Azure Portal. Do zařízení se odešle testovací nabízené oznámení.

Azure portal - Test Send

Nabízená oznámení se většinou posílají ve službě back-end, jako je služba Mobile Apps, nebo v technologii ASP.NET pomocí kompatibilní knihovny. Pokud k vašemu back-endu není k dispozici knihovna, můžete zasílat oznámení přímo z rozhraní REST API.

Další kroky

V tomto kurzu jste rozeslali oznámení do všech zařízení s iOS zaregistrovaných v back-endu. Pokud se chcete naučit zasílat nabízená oznámení určitým zařízením s iOSem, pokračujte následujícím kurzem: