Kurz: Odesílání nabízených oznámení do aplikací Xamarin.iOS pomocí 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 (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 vytvoříte nebo aktualizujete kód tak, aby prováděl následující úlohy:

  • Vygenerujete soubor 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

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 Apple Push Notification Service (APNs) používá certifikáty k ověření nabízených oznámení. 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. V Macu spusťte nástroj Keychain Access. Můžete ho otevřít ze složky Nástroje nebo z jiné složky na Launchpadu.

  2. Vyberte Přístup ke klíčence, rozbalte Certificate Assistant a pak vyberte Vyžádat certifikát od certifikační autority.

    Use Keychain Access to request a new certificate

    Poznámka

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

  3. Vyberte svoji e-mailovou adresu uživatele, zadejte hodnotu Společného jména , 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. Zadejte název souboru CSR v části Uložit jako, 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 také zaregistrujte nabízená oznámení.

  1. Pokud jste aplikaci ještě nezaregistrovali, přejděte na portál 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 + , že 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 pro novou aplikaci následující tři hodnoty a pak vyberte Pokračovat:

    • Popis: Zadejte popisný název aplikace.

    • ID sady: Zadejte ID sady formuláře Název produktu Organization Identifier.Product Name , jak je uvedeno v průvodci distribucí aplikací. Hodnoty Identifikátor organizace a název 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 hodnota GetStarted se používá jako název produktu. 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 žádosti, 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 nové ID aplikace zobrazí jako položka řádku na stránce Certifikáty, Profily identifikátorů&.

  4. Na stránce Certifikáty, Profily identifikátorů & v části Identifikátory vyhledejte položku řádku ID aplikace, kterou jste právě vytvořili, a výběrem jejího řádku zobrazte obrazovku Upravit ID aplikace.

Vytvoření certifikátu pro Notification Hubs

K tomu, aby centrum oznámení fungovalo s APNS, je vyžadován 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í založené na tokenech (novější přístup).

Novější přístup má řadu výhod (ve srovnání s použitím certifikátů), jak je uvedeno v ověřování pomocí tokenů (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

    V tomto kurzu se 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í úlohy, a potom poklikejte na název certifikátu a načtěte ho. Potom vyberte Pokračovat.

  4. Po vytvoření certifikátu portálu 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é. Pokud chcete obejít vytváření hesel, 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í sítí API.

    Poznámka

    Název a umístění 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átky v certifikátech, profily identifikátorů&, klepněte na tlačítko 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 vhodný název klíče a zaškrtněte možnost Služby 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 potom přesuňte soubor .p8 (předponu AuthKey_) do zabezpečeného místního adresáře a potom klikněte na tlačítko Hotovo.

    Poznámka

    Nezapomeňte zachovat 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. Na klávesách klikněte na klíč, který jste právě vytvořili (nebo existující klíč, pokud jste se rozhodli místo toho použít).

  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 privátním klíčem -----BEGIN----- a -----END PRIVATE KEY----- .

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

    Poznámka

    Jedná se o hodnotu 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 centru oznámení s informacemi o službě APNs:

  • 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 zřizování pro iOS, vyberte certifikáty, profily identifikátorů&, vyberte Profily z levé nabídky 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 z rozevíracího 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. Vyberte 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, Profily identifikátorů&, vyberte Profily z levé nabídky a pak vyberte + vytvořit nový profil. Zobrazí se obrazovka Registrace nového zřizovacího profilu .

  6. V okně Vybrat certifikáty vyberte certifikát pro vývoj, který jste právě vytvořili. Potom vyberte Pokračovat.

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

  8. Nakonec zvolte název profilu v názvu zřizovacího profilu a vyberte Generovat.

    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 ukládá.

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

Vytvoříte 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 certifikátu .p12 nebo ověřování založeného na tokenech. 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 webu Azure Portal.

  2. V nabídce vlevo vyberte Všechny služby a pak v části Mobilní zařízení vyberte Notification Hubs. Výběrem ikony hvězdičky vedle názvu služby přidáte službu do oddílu OBLÍBENÉ POLOŽKY v nabídce vlevo. Po přidání služby Notification Hubs do oblíbených položek ji vyberte v levé nabídce.

    Azure portal - select Notification Hubs

  3. Na stránce Notification Hubs vyberte Vytvořit na panelu nástrojů.

    Notification Hubs - Add toolbar button

  4. Na kartě Základy na stránce Centrum 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í, takže do podrobností centra oznámení zadejte název centra. Nebo v rozevíracím seznamu vyberte existující obor názvů.

    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.

    5. Vyberte Vytvořit.

      Azure portal - set notification hub properties

  5. Vyberte Oznámení (ikona zvonku) a pak vyberte Přejít k prostředku. Seznam můžete také aktualizovat na stránce Notification Hubs a vybrat centrum.

    Azure portal - go to resource

  6. Vyberte ze seznamu Zásady přístupu. Všimněte si, že jsou vám k dispozici dva připojovací řetězce. Budete je potřebovat později, abyste mohli zpracovávat nabízená oznámení.

    Důležité

    Nepoužívejte ve své aplikaci zásady DefaultFullSharedAccessSignature. To se má použít jenom v back-endu.

    Azure portal - notification hub connection strings

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

V části Notification Services 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 pomocí app Storu nebo distribučního profilu ad hoc, použijte produkční režim aplikace pro aplikaci. To umožní vašemu zařízení odesílat nabízená oznámení uživatelům, kteří si vaši aplikaci koupili z Obchodu.

MOŽNOST 1: Použití nabízeného certifikátu .p12

  1. Vyberte Certifikát.

  2. Vyberte ikonu souboru.

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

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

  5. Vyberte režim Izolovaný prostor.

    Configure APNs certification in Azure portal

  6. Vyberte 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. Vyberte Uložit.

Teď jste nakonfigurovali centrum oznámení pomocí apNs. Máte také připojovací řetězce pro 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 potom 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 možnost Entitlements.plist 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 na projekt a vyberte Přidat>balíčky NuGet. Vyhledejte balíček Xamarin.Azure.NotificationHubs.iOS a přidejte ho do svého projektu.

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

    // 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. Přidejte AppDelegate.csnásledující příkaz using:

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

    public class AzureNotificationHubListener : MSNotificationHubDelegate
    {
        public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message)
        {
    
        }
    }
    
  9. Aktualizujte AppDelegate.csFinishedLaunching() kód tak, aby odpovídal 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. Implementujte AppDelegate.csmetodu 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 pro váš back-end není dostupná žádná knihovna, můžete k zasílání zpráv oznámení použít také přímo 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: