Kurz: Počáteční konfigurace pro příjem nabízených oznámení ze služby Azure Notification Hubs

V tomto kurzu se dozvíte, jak pomocí služby Azure Notification Hubs odesílat nabízená oznámení do aplikace pro iOS pomocí sady Azure Notification Hubs SDK pro Apple.

Tento kurz se zabývá následujícími kroky:

  • Vytvořte ukázkovou aplikaci pro iOS.
  • Připojení aplikaci pro iOS do služby Azure Notification Hubs.
  • Odesílání testovacích nabízených oznámení
  • Ověřte, že vaše aplikace přijímá oznámení.

Kompletní kód pro tento kurz si můžete stáhnout z GitHubu.

Požadavky

K dokončení tohoto kurzu budete potřebovat následující požadavky:

  • Mac se systémem Xcode spolu s platným certifikátem vývojáře nainstalovaným do klíčenky.
  • I Telefon nebo iPad se systémem iOS verze 10 nebo novější.
  • Vaše fyzické zařízení zaregistrované na portálu Apple Portal a přidružené k vašemu certifikátu.

Než budete pokračovat, nezapomeňte si projít předchozí kurz začínáme se službou Azure Notification Hubs pro aplikace pro iOS a nastavit a nakonfigurovat v centru oznámení přihlašovací údaje nabízených oznámení. I když nemáte žádné předchozí zkušenosti s vývojem pro iOS, měli byste být schopni postupovat podle těchto kroků.

Poznámka:

Vzhledem k požadavkům na konfiguraci nabízených oznámení musíte místo emulátoru iOS nasadit a otestovat nabízená oznámení na fyzickém zařízení s iOSem (i Telefon nebo iPad).

Připojte aplikaci iOS k centru oznámení

  1. V Xcode vytvořte nový projekt Xcode a vyberte kartu iOS a šablonu aplikace .

    Diagram that shows Xcode setup for new app

  2. Když nastavujete možnosti pro nový projekt, nezapomeňte použít stejný Název produktu a Identifikátor organizace, který jste použili při nastavení identifikátoru sady na portálu pro vývojáře Apple. Sada identifikovaná v novém okně projektu by se měla naplnit tak, aby odpovídala sadě identifikované na portálu pro vývojáře Apple. Mějte na paměti, že jsou rozlišována velká a malá písmena.

  3. V části Navigátor projektu vyberte název projektu v části Cíle a pak vyberte kartu Podepisování a možnosti . Ujistěte se, že jste vybrali odpovídající tým pro váš účet Apple Developer. XCode by na základě vašeho identifikátoru sady mělo automaticky stáhnout profil zřizování, který jste vytvořili dříve.

    Pokud nevidíte nový profil zřizování, který jste vytvořili v Xcode, pokuste se aktualizovat profily pro podpisové identity. Klikněte na tlačítko Xcode na panelu nabídek, klikněte na tlačítko Předvolby, klikněte na kartu Účet, klikněte na tlačítko Zobrazit podrobnosti, klikněte na podpisovou identitu a pak klikněte na tlačítko Aktualizovat v pravém dolním rohu.

    View details

  4. Na kartě Podepisování a možnosti vyberte + Možnosti. Poklikáním na nabízená oznámení je povolte.

    Capability

  5. Přidejte moduly sady AZURE Notification Hubs SDK.

    Sadu Sdk služby Azure Notification Hubs můžete do své aplikace integrovat pomocí Cocoapods nebo ručním přidáním binárních souborů do projektu.

    • Integrace přes Cocoapods: Přidejte do souboru podsouboru následující závislosti, které do vaší aplikace zahrnou sadu SDK služby Azure Notification Hubs:

      pod 'AzureNotificationHubs-iOS'
      
      • Spuštěním instalace podu nainstalujte nově definovaný pod a otevřete soubor .xcworkspace.

        Pokud se při spuštění instalace podu zobrazí chyba, například Nejde najít specifikaci pro AzureNotificationHubs-iOS , spusťte příkaz pod repo update pro získání nejnovějších podů z úložiště Cocoapods a spusťte instalaci podu.

    • Integrace prostřednictvím Carthage: Přidejte do souboru Cartfile následující závislosti, které do vaší aplikace zahrnou sadu SDK služby Azure Notification Hubs:

      github "Azure/azure-notificationhubs-ios"
      
      • Dále aktualizujte závislosti sestavení:
      $ carthage update
      

      Další informace o používání Carthage najdete v úložišti Carthage na GitHubu.

    • Integrace zkopírováním binárních souborů do projektu:

      Binární soubory můžete integrovat zkopírováním binárních souborů do projektu následujícím způsobem:

      • Stáhněte si architekturu sady Azure Notification Hubs SDK poskytovanou jako soubor ZIP a rozbalte ji.

      • V Xcode klikněte pravým tlačítkem na projekt a klikněte na možnost Přidat soubory do a přidejte složku WindowsAzureMessaging.framework do projektu Xcode. Vyberte Možnosti, ujistěte se, že je vybraná možnost Kopírovat položky v případě potřeby, a pak klikněte na Přidat.

        Add framework

  6. Přidejte nebo upravte soubor s názvem Dev Nastavení.plist, který obsahuje dvě vlastnosti, CONNECTION_STRING připojovací řetězec do centra oznámení Azure a HUB_NAME název centra oznámení Azure.

  7. V příslušné <string></string> části přidejte informace pro připojení ke službě Azure Notification Hubs. Nahraďte zástupné symboly --HUB-NAME-- řetězcového literálu a --CONNECTION-STRING-- názvem centra a defaultListenSharedAccessSignature, jak jste předtím získali z portálu:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
      <key>HUB_NAME</key>
      <string>--HUB-NAME--</string>
      <key>CONNECTION_STRING</key>
      <string>--CONNECTION-STRING--</string>
    </dict>
    </plist>
    
  8. Ve stejném souboru AppDelegate.m nahraďte veškerý kód za didFinishLaunchingWithOptions následujícím kódem:

    #import <WindowsAzureMessaging/WindowsAzureMessaging.h>
    #import <UserNotifications/UserNotifications.h>
    
    // Extend the AppDelegate to listen for messages using MSNotificationHubDelegate and User Notification Center
    @interface AppDelegate () <MSNotificationHubDelegate>
    
    @end
    
    @implementation AppDelegate
    
    @synthesize notificationPresentationCompletionHandler;
    @synthesize notificationResponseCompletionHandler;
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        NSString *path = [[NSBundle mainBundle] pathForResource:@"DevSettings" ofType:@"plist"];
        NSDictionary *configValues = [NSDictionary dictionaryWithContentsOfFile:path];
    
        NSString *connectionString = [configValues objectForKey:@"CONNECTION_STRING"];
        NSString *hubName = [configValues objectForKey:@"HUB_NAME"];
    
        if([connectionString length] != 0 && [hubName length] != 0) {
            [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self];
            [MSNotificationHub setDelegate:self];
            [MSNotificationHub initWithConnectionString:connectionString withHubName:hubName];
    
            return YES;
        }
    
        NSLog(@"Please setup CONNECTION_STRING and HUB_NAME in DevSettings.plist and restart application");
    
        exit(-1);
    }
    
    - (void)notificationHub:(MSNotificationHub *)notificationHub didReceivePushNotification:(MSNotificationHubMessage *)message {
        // Send message using NSNotificationCenter with the message
        NSDictionary *userInfo = [NSDictionary dictionaryWithObject:message forKey:@"message"];
        [[NSNotificationCenter defaultCenter] postNotificationName:@"MessageReceived" object:nil userInfo:userInfo];
    }
    
    @end
    

    Tento kód se připojí k centru oznámení pomocí informací o připojení, které jste zadali v souboru Dev Nastavení.plist. Potom poskytne token zařízení centru oznámení, aby centrum mohlo odesílat oznámení.

Vytvoření souboru hlavičky NotificationDetailViewController

  1. Podobně jako v předchozích pokynech přidejte další soubor hlaviček s názvem SetupViewController.h. Obsah nového hlavičkového souboru nahraďte následujícím kódem:

    #import <UIKit/UIKit.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface SetupViewController : UIViewController
    
    @end
    
    NS_ASSUME_NONNULL_END
    
  2. Přidejte implementační soubor SetupViewController.m. Nahraďte obsah souboru následujícím kódem, který implementuje metody UIViewController:

    #import "SetupViewController.h"
    
     static NSString *const kNHMessageReceived = @"MessageReceived";
    
     @interface SetupViewController ()
    
     @end
    
     @implementation SetupViewController
    
     - (void)viewDidLoad {
         [super viewDidLoad];
    
         // Listen for messages using NSNotificationCenter
         [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceivePushNotification:) name:kNHMessageReceived object:nil];
     }
    
     - (void)dealloc {
         // Clean up subscription to NSNotificationCenter
         [[NSNotificationCenter defaultCenter] removeObserver:self name:kNHMessageReceived object:nil];
     }
    
     - (void)didReceivePushNotification:(NSNotification *)notification {
         MSNotificationHubMessage *message = [notification.userInfo objectForKey:@"message"];
    
         // Create UI Alert controller with message title and body
         UIAlertController *alertController = [UIAlertController alertControllerWithTitle:message.title
                              message:message.body
                       preferredStyle:UIAlertControllerStyleAlert];
         [alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleCancel handler:nil]];
         [self presentViewController:alertController animated:YES completion:nil];
    
         // Dismiss after 2 seconds
         dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
             [alertController dismissViewControllerAnimated:YES completion: nil];
         });
    
     }
    
     @end
    
  3. Ověřte, zda nedochází k žádným chybám tak, že sestavíte a spustíte aplikaci na vašem 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í.

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 není pro váš back-end k dispozici knihovna, můžete k odesílání zpráv s oznámeními použít také rozhraní REST API.

Tady je seznam některých dalších kurzů, které můžete chtít zkontrolovat pro odesílání oznámení:

Ověření, že aplikace přijímá nabízená oznámení

Chcete-li otestovat nabízená oznámení na iOS, musíte aplikaci nasadit do fyzického zařízení iOS. Nabízená oznámení Apple nelze odesílat pomocí simulátoru iOS.

  1. Spusťte aplikaci a ověřte, zda byla registrace úspěšná a stiskněte klávesu OK.

    Register

  2. Dále odešlete testovací nabízené oznámení z webu Azure Portal, jak je popsáno v předchozí části.

  3. Nabízené oznámení se odešle na všechna zařízení, která jsou zaregistrovaná pro příjem oznámení z daného centra oznámení.

    Send test

Další kroky

V tomto jednoduchém příkladu vysíláte nabízená oznámení všem registrovaným zařízením s iOSem. Pokud se chcete dozvědět, jak odesílat nabízená oznámení konkrétním zařízením s iOSem, přejděte k následujícímu kurzu:

Kurz: Nabízená oznámení konkrétním zařízením

Další informace najdete v následujících článcích: