Aracılığıyla paylaş


Öğretici: Azure Notification Hubs'dan anında iletme bildirimi almak için ilk yapılandırma

Bu öğreticide, Apple için Azure Notification Hubs SDK'sını kullanarak bir iOS uygulamasına anında iletme bildirimleri göndermek için Azure Notification Hubs'ın nasıl kullanılacağı gösterilmektedir.

Bu öğreticide aşağıdaki adımlar yer almaktadır:

  • Örnek bir iOS uygulaması oluşturun.
  • iOS uygulamanızı Azure Notification Hubs'a Bağlan.
  • Test anında iletme bildirimleri gönderin.
  • Uygulamanızın bildirim aldığını doğrulayın.

Bu öğreticinin kodunun tamamını GitHub'dan indirebilirsiniz.

Önkoşullar

Bu öğreticiyi tamamlamak için aşağıdaki önkoşullara ihtiyacınız vardır:

  • Anahtar zincirinize yüklenmiş geçerli bir geliştirici sertifikasının yanı sıra Xcode çalıştıran bir Mac.
  • iOS sürüm 10 veya üzerini çalıştıran bir i Telefon veya iPad.
  • Fiziksel cihazınız Apple Portal'a kaydedilmiş ve sertifikanızla ilişkilendirilmiş.

Devam etmeden önce, bildirim hub'ınızda anında iletme kimlik bilgilerini ayarlamak ve yapılandırmak için iOS uygulamaları için Azure Notification Hubs'ı kullanmaya başlama öğreticisini incelediğinizden emin olun. iOS geliştirme konusunda daha önce deneyiminiz olmasa bile bu adımları izleyebilmelisiniz.

Dekont

Anında iletme bildirimleri için yapılandırma gereksinimleri nedeniyle, anında iletme bildirimlerini iOS öykünücüsü yerine fiziksel bir iOS cihazında (i Telefon veya iPad) dağıtmanız ve test etmeniz gerekir.

iOS uygulamanızı Notification Hubs'a bağlama

  1. Xcode'da yeni bir Xcode projesi oluşturun ve iOS Sekmesi ve Uygulama şablonunu seçin.

    Diagram that shows Xcode setup for new app

  2. Yeni projeniz için seçenekleri ayarlarken, Apple Developer portalında paket kimliğini açarken kullandığınız Product Name (Ürün Adı) ve Organization Identifier'nı (Kuruluş Tanımlayıcısı) kullandığınızdan emin olun. Yeni proje penceresinde tanımlanan Paket, Apple Geliştirici portalında tanımlanan paketle eşleşecek şekilde doldurulmalıdır. Büyük/küçük harf duyarlıdır.

  3. Proje Gezgini'nin altında Hedefler'in altında proje adınızı ve ardından İmzalama ve Yetenekler sekmesini seçin. Apple Geliştirici hesabınız için uygun Ekibi seçtiğinizden emin olun. XCode, paket tanımlayıcınızı temel alarak önceden oluşturduğunuz Sağlama Profilini otomatik olarak aşağı çekmelidir.

    Xcode'da oluşturduğunuz yeni hazırlama profilini göremiyorsanız imzalama kimliğiniz için profilleri yenilemeyi deneyin. Menü çubuğunda Xcode'a tıklayın, Preferences'a (Tercihler) tıklayın, Account (Hesap) sekmesine tıklayın, View Details (Ayrıntıları Görüntüle) düğmesine tıklayın, imzalama kimliğinize tıklayın ve ardından sağ alt köşedeki yenile düğmesine tıklayın.

    View details

  4. İmzalama ve Özellikler sekmesinde + Yetenek'i seçin. Etkinleştirmek için Anında İletme Bildirimleri'ne çift tıklayın.

    Capability

  5. Azure Notification Hubs SDK modüllerini ekleyin.

    Cocoapods kullanarak veya ikili dosyaları projenize el ile ekleyerek Azure Notification Hubs SDK'sını uygulamanızla tümleştirebilirsiniz.

    • Cocoapods ile tümleştirme: Uygulamanıza Azure Notification Hubs SDK'sını eklemek için podfile'ınıza aşağıdaki bağımlılıkları ekleyin:

      pod 'AzureNotificationHubs-iOS'
      
      • Yeni tanımlanan podunuzu yüklemek ve .xcworkspace'inizi açmak için pod yüklemesini çalıştırın.

        Pod yüklemesini çalıştırırken AzureNotificationHubs-iOS belirtimi bulunamadı gibi bir hata görürseniz, Cocoapods deposundan en son podları almak için komutunu çalıştırın pod repo update ve pod yüklemeyi çalıştırın.

    • Carthage aracılığıyla tümleştirme: Uygulamanıza Azure Notification Hubs SDK'sını eklemek için Cartfile'ınıza aşağıdaki bağımlılıkları ekleyin:

      github "Azure/azure-notificationhubs-ios"
      
      • Ardından derleme bağımlılıklarını güncelleştirin:
      $ carthage update
      

      Carthage kullanma hakkında daha fazla bilgi için bkz . Carthage GitHub deposu.

    • İkili dosyaları projenize kopyalayarak tümleştirme:

      İkili dosyaları projenize aşağıdaki gibi kopyalayarak tümleştirebilirsiniz:

      • Zip dosyası olarak sağlanan Azure Notification Hubs SDK çerçevesini indirin ve sıkıştırmasını açın.

      • Xcode'da projenize sağ tıklayın ve WindowsAzureMessaging.framework klasörünü Xcode projenize eklemek için Add Files to (Dosyaları Şuraya Ekle) seçeneğine tıklayın. Options (Seçenekler) seçeneğine tıklayıp Copy items if needed (Gerekirse verileri kopyala) öğesinin seçili olduğundan emin olduktan sonra Add (Ekle) öğesine tıklayın.

        Add framework

  6. Azure Notification Hub'a bağlantı dizesi ve Azure Notification Hub adı için olmak üzere iki özellik CONNECTION_STRING içeren Dev Ayarlar.plist adlı bir dosya ekleyin veya HUB_NAME düzenleyin.

  7. Uygun <string></string> bölüme Azure Notification Hubs'a bağlanma bilgilerini ekleyin. Dize değişmez değer yer tutucularını --HUB-NAME-- ve --CONNECTION-STRING-- daha önce portaldan edindiğiniz gibi sırasıyla hub adı ve DefaultListenSharedAccessSignature ile değiştirin:

    <?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. Aynı AppDelegate.m dosyasında, sonrasındaki tüm kodu aşağıdaki kodla didFinishLaunchingWithOptions değiştirin:

    #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
    

    Bu kod, Dev Ayarlar.plist dosyasında belirttiğiniz bağlantı bilgilerini kullanarak bildirim hub'ına bağlanır. Ardından cihaz belirtecini bildirim hub'ına verir, böylece hub bildirim gönderebilir.

NotificationDetailViewController üst bilgi dosyası oluşturma

  1. Önceki yönergelere benzer şekilde, SetupViewController.h adlı başka bir üst bilgi dosyası ekleyin. Yeni üst bilgi dosyasının içeriğini aşağıdaki kodla değiştirin:

    #import <UIKit/UIKit.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface SetupViewController : UIViewController
    
    @end
    
    NS_ASSUME_NONNULL_END
    
  2. SetupViewController.m uygulama dosyasını ekleyin. Dosyanın içeriğini UIViewController yöntemlerini uygulayan aşağıdaki kodla değiştirin:

    #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. Herhangi bir hata olmadığını doğrulamak için cihazınızda uygulamayı derleyin ve çalıştırın.

Test amaçlı anında iletme bildirimleri gönderme

Azure portalındakiTest Gönderimi seçeneğini kullanarak uygulamanızda bildirim alma testi gerçekleştirebilirsiniz. Bu, cihazınıza test amaçlı anında iletme bildirimi gönderir.

Test send

Anında iletme bildirimleri normal olarak, uyumlu bir kitaplık kullanılarak Mobile Apps veya ASP.NET gibi bir arka uç hizmetine gönderilir. Arka ucunuz için bir kitaplık kullanılamıyorsa, bildirim iletileri göndermek için doğrudan REST API'yi de kullanabilirsiniz.

Bildirim göndermek için gözden geçirmek isteyebileceğiniz diğer öğreticilerin listesi aşağıdadır:

Uygulamanızın anında iletme bildirimleri aldığını doğrulama

iOS'ta anında iletme bildirimlerini test etmek için, uygulamayı fiziksel bir iOS cihazına dağıtmanız gerekir. iOS simülatörünü kullanarak Apple anında iletme bildirimleri gönderemezsiniz.

  1. Uygulamayı çalıştırın ve kaydın başarılı olduğunu doğrulayın. Ardından, Tamam'a basın.

    Register

  2. Ardından, önceki bölümde açıklandığı gibi Azure portalından bir test anında iletme bildirimi gönderin.

  3. Anında iletme bildirimi, belirtilen bildirim hub'ından bildirimleri almak üzere kayıtlı tüm cihazlara gönderilir.

    Send test

Sonraki adımlar

Bu basit örnekte, tüm kayıtlı iOS cihazlarınıza anında iletme bildirimleri yayınlarsınız. Belirli iOS cihazlarına anında iletme bildirimleri göndermeyi öğrenmek için aşağıdaki öğreticiye geçin:

Öğretici: Belirli cihazlara anında iletme bildirimleri gönderme

Daha fazla bilgi için aşağıdaki makaleleri inceleyin: