Öğ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
Xcode'da yeni bir Xcode projesi oluşturun ve iOS Sekmesi ve Uygulama şablonunu seçin.
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.
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.
İmzalama ve Özellikler sekmesinde + Yetenek'i seçin. Etkinleştirmek için Anında İletme Bildirimleri'ne çift tıklayın.
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.
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 veyaHUB_NAME
düzenleyin.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>
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
Ö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
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
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.
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:
- Azure Mobile Apps: Notification Hubs ile tümleştirilmiş bir Mobile Apps arka ucundan bildirim gönderme örneği için bkz . iOS Uygulamanıza Anında İletme Bildirimleri Ekleme.
- ASP.NET: Kullanıcılara anında iletme bildirimleri göndermek için Notification Hubs'ı kullanın.
- Azure Notification Hubs Java SDK'sı: Java'dan bildirim göndermek için bkz. Java'dan Notification Hubs kullanma. Android geliştirmesi için Eclipse'te sınanmıştır.
- PHP: PHP'ye ait Notification Hubs nasıl kullanılı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.
Uygulamayı çalıştırın ve kaydın başarılı olduğunu doğrulayın. Ardından, Tamam'a basın.
Ardından, önceki bölümde açıklandığı gibi Azure portalından bir test anında iletme bildirimi gönderin.
Anında iletme bildirimi, belirtilen bildirim hub'ından bildirimleri almak üzere kayıtlı tüm cihazlara gönderilir.
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:
- Azure Notification Hubs'a genel bakış
- Notification Hubs REST API'leri
- Arka uç işlemleri için Notification Hubs SDK'sı
- GitHub'da Notification Hubs SDK'sı
- Uygulama arka ucuna kaydolma
- Kayıt yönetimi
- Etiketlerle çalışma
- Özel şablonlarla çalışma
- Paylaşılan erişim imzalarıyla Service Bus erişim denetimi
- Program aracılığıyla SAS belirteçleri oluşturma
- Apple güvenliği: ortak şifreleme
- UNIX Dönem süresi
- HMAC