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.
-
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.
Na Macu spusťte nástroj Keychain Access. Dá se otevřít ze složky Nástroje nebo z jiné složky na Launchpadu.
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.
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.
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á.
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.
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í.
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.
Na obrazovce Zaregistrovat nový identifikátor vyberte přepínač ID aplikací. Potom vyberte Pokračovat.
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í.
Nabízená oznámení: V části Možnosti zkontrolujte možnost Nabízená oznámení.
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.
Po výběru možnosti Zaregistrovat se na stránce Certifikáty, Identifikátory a Profily zobrazí nové ID aplikace jako řádek.
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ů:
- Vytvořte soubor .p12, který lze nahrát přímo do centra oznámení.
- 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í
Posuňte se dolů na zaškrtnutou možnost Nabízená oznámení a pak vyberte Konfigurovat pro vytvoření certifikátu.
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.
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.
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.
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ží.
Certifikát se stáhne a uloží do počítače ve složce Stažené soubory .
Poznámka:
Ve výchozím nastavení se stažený vývojový certifikát jmenuje aps_development.cer.
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:
Poznámka:
I když se název v certifikátu může lišit, bude mít předponu Apple Development iOS Push Services.
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.
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
Poznamenejte si následující podrobnosti:
- Předpona ID aplikace (toto je ID týmu)
- ID sady prostředků
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 3 až 5.
Kliknutím na + tlačítko (nebo na tlačítko Vytvořit klíč ) vytvořte nový klíč.
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.
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.
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íč).
Poznamenejte si hodnotu ID klíče.
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
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 .
Jako typ zřizovacího profilu vyberte Vývoj aplikací pro iOS v části Vývoj a pak vyberte Pokračovat.
Dále vyberte ID aplikace, které jste vytvořili v rozevíracím seznamu ID aplikace, a vyberte Pokračovat.
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:
- Pokud vidíte, že nejsou k dispozici žádné certifikáty, vyberte Vytvořit certifikát.
- V části Software vyberte Vývoj apple. Potom vyberte Pokračovat.
- Na obrazovce Vytvořit nový certifikát vyberte Zvolit soubor.
- 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.
- Zvolte Pokračovat.
- Stáhněte si vývojový certifikát a zapamatujte si umístění, do kterého je uložený.
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 .
V okně Vybrat certifikáty vyberte právě vytvořený vývojový certifikát. Potom vyberte Pokračovat.
Dále vyberte zařízení, která chcete použít k testování, a vyberte Pokračovat.
Nakonec v části Název zřizovacího profilu zvolte název profilu a vyberte Vygenerovat.
Po vytvoření nového zřizovacího profilu vyberte Stáhnout. Zapamatujte si umístění, do kterého se uloží.
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.
Přihlaste se k portálu Azure.
V nabídce vlevo vyberte Všechny služby .
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.
Na stránce Notification Hubs vyberte vytvořit na panelu nástrojů.
Na kartě Základy na stránce Centra oznámení proveďte následující kroky:
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.
Do podrobností oboru názvů zadejte jedinečný název nového oboru názvů.
Obor názvů obsahuje jedno nebo více center oznámení, proto do podrobností centra oznámení zadejte název centra.
V rozevíracím seznamu Umístění vyberte hodnotu. Tato hodnota určuje umístění, ve kterém chcete centrum vytvořit.
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.
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í.
Vyberte Vytvořit.
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
Vyberte Certifikát.
Vyberte ikonu souboru.
Vyberte soubor .p12, který jste vyexportovali dříve, a pak vyberte Otevřít.
V případě potřeby zadejte správné heslo.
Vyberte režim Sandbox.
Zvolte Uložit.
MOŽNOST 2: Použití ověřování založeného na tokenech
Vyberte Token.
Zadejte následující hodnoty, které jste získali dříve:
- ID klíče
- ID sady prostředků
- ID týmu
- Token
Volba sandboxu
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
V sadě Visual Studio vytvořte nový projekt pro iOS, vyberte šablonu Aplikace s jedním zobrazením a klikněte na Další.
Zadejte název aplikace a identifikátor organizace a pak klikněte na Další a pak na Vytvořit.
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é.
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í .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.
Přidejte do třídy nový soubor, pojmenujte ho
Constants.cs
a přidejte následující proměnné a nahraďte zástupné symbolyhubname
DefaultListenSharedAccessSignature
ř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>";
Do
AppDelegate.cs
příkazu přidejte následující příkaz using:using WindowsAzure.Messaging.NotificationHubs; using UserNotifications
Vytvořte implementaci v
MSNotificationHubDelegate
:AppDelegate.cs
public class AzureNotificationHubListener : MSNotificationHubDelegate { public override void DidReceivePushNotification(MSNotificationHub notificationHub, MSNotificationHubMessage message) { } }
V
AppDelegate.cs
nástroji , aktualizujteFinishedLaunching()
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; }
V
AppDelegate.cs
implementujte metoduDidReceivePushNotification
AzureNotificationHubListener
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); }
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í.
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: