Tutorial: Konfigurasi awal untuk menerima pemberitahuan push dari Azure Notification Hubs

Tutorial ini menunjukkan kepada Anda cara menggunakan Hub Pemberitahuan Azure untuk mengirim pemberitahuan push ke aplikasi iOS, menggunakan SDK Hub Pemberitahuan Azure untuk Apple.

Tutorial ini mencakup langkah-langkah berikut:

  • Membuat aplikasi iOS sampel.
  • Menghubungkan aplikasi iOS Anda ke Azure Notification Hubs.
  • Mengirim pemberitahuan push untuk pengujian.
  • Memverifikasi bahwa aplikasi Anda dapat menerima pemberitahuan.

Anda dapat mengunduh kode yang lengkap untuk tutorial ini dari GitHub.

Prasyarat

Untuk menyelesaikan tutorial ini, Anda memerlukan prasyarat berikut:

  • Mac yang menjalankan Xcode, bersama dengan sertifikat pengembang valid yang diinstal ke rantai kunci Anda.
  • iPhone atau iPad yang menjalankan iOS versi 10 atau lebih baru.
  • Perangkat fisik yang terdaftar di Portal Apple dan terkait dengan sertifikat Anda.

Sebelum melanjutkan, pastikan untuk melihat tutorial sebelumnya tentang memulai Azure Notification Hubs untuk aplikasi iOS, untuk menyiapkan dan mengonfigurasi kredensial push di pemberitahuan hub Anda. Bahkan jika sebelumnya Anda tidak memiliki pengalaman tentang pengembangan iOS, Anda akan dapat mengikuti langkah-langkah ini.

Catatan

Karena persyaratan konfigurasi untuk pemberitahuan push, Anda harus menyebarkan dan menguji pemberitahuan push di perangkat iOS fisik (iPhone atau iPad), bukan di emulator iOS.

Hubungkan aplikasi iOS Anda ke Notification Hubs Azure

  1. Di Xcode, buat proyek Xcode baru dan pilih Tab iOS dan Templat aplikasi .

    Diagram that shows Xcode setup for new app

  2. Saat mengatur opsi untuk proyek baru Anda, pastikan untuk menggunakan Nama Produkdan Pengidentifikasi Organisasi yang sama dengan yang Anda gunakan saat mengatur pengidentifikasi bundel di portal Pengembang Apple. Bundel yang Diidentifikasi di jendela proyek baru harus diisi agar sesuai dengan bundel yang diidentifikasi di portal Pengembang Apple. Bagian ini peka terhadap huruf besar/kecil.

  3. Di bawah Navigator Proyek, pilih nama proyek Anda di bawah Target, lalu pilih tab Penandatanganan & Kapabilitas. Pastikan Anda memilih Tim yang sesuai untuk akun Pengembang Apple Anda. XCode akan secara otomatis mengganti Profil Penyebaran yang Anda buat sebelumnya berdasarkan pengidentifikasi bundel Anda.

    Jika Anda tidak melihat profil penyebaran baru yang Anda buat di Xcode, coba refresh profil untuk identitas penandatanganan Anda. Klik Xcode pada bilah menu, klik Preferensi, klik tab Akun, klik tombol Tampilkan Detail, klik identitas penandatanganan Anda, lalu klik tombol refresh di sudut kanan bawah.

    View details

  4. Di tab Penandatanganan & Kapabilitas, pilih + Kapabilitas. Klik dua kali Pemberitahuan Push untuk mengaktifkannya.

    Capability

  5. Tambahkan modul SDK Azure Notification Hubs.

    Anda dapat mengintegrasikan SDK Azure Notification Hubs ke dalam aplikasi Anda dengan menggunakan Cocoapods atau dengan menambahkan biner ke proyek Anda secara manual.

    • Integrasi melalui Cocoapods: Tambahkan dependensi berikut ke podfile Anda untuk menyertakan SDK Azure Notification Hubs di aplikasi Anda:

      pod 'AzureNotificationHubs-iOS'
      
      • Jalankan penginstalan pod untuk memasang Pod yang baru saja didefinisikan dan membuka .xcworkspace Anda.

        Jika kamu melihat kesalahan seperti Tidak dapat menemukan spesifikasi untuk AzureNotificationHubs-iOS saat menjalankan penginstalan pod, jalankan pod repo update untuk mendapatkan pod terbaru dari repositori Cocoapods, lalu jalankan penginstalan pod.

    • Integrasi melalui Carthage: Tambahkan dependensi berikut ke Cartfile Anda untuk menyertakan SDK Azure Notification Hubs di aplikasi Anda:

      github "Azure/azure-notificationhubs-ios"
      
      • Selanjutnya, perbarui dependensi build:
      $ carthage update
      

      Untuk informasi selengkapnya tentang penggunaan Carthage, lihat repositori GitHub Carthage.

    • Integrasi dengan menyalin biner ke dalam proyek Anda:

      Anda dapat mengintegrasikan dengan menyalin biner ke dalam proyek Anda, sebagai berikut:

      • Unduh kerangka kerja SDK Azure Notification Hubs yang disediakan sebagai file zip, dan unzip file tersebut.

      • Di Xcode, klik kanan proyek Anda dan klik opsi Tambahkan File ke untuk menambahkan folder WindowsAzureMessaging.framework ke proyek Xcode Anda. Pilih Opsi dan pastikan Salin item jika diperlukan sudah dipilih, lalu klik Tambahkan.

        Add framework

  6. Tambahkan atau edit file yang disebut DevSettings.plist yang berisi dua properti, CONNECTION_STRING untuk string koneksi ke Hub Pemberitahuan Azure, dan HUB_NAME untuk nama Hub Pemberitahuan Azure.

  7. Tambahkan informasi untuk menyambungkan ke Azure Notification Hubs di bagian <string></string> yang sesuai. Ganti tempat penampung literal string --HUB-NAME-- dan --CONNECTION-STRING-- dengan nama hub dan DefaultListenSharedAccessSignature, masing-masing, seperti yang Anda peroleh sebelumnya dari portal:

    <?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. Dalam file AppDelegate.m yang sama, ganti semua kode setelah didFinishLaunchingWithOptions dengan kode berikut:

    #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
    

    Kode ini terhubung ke hub pemberitahuan menggunakan informasi koneksi yang Anda tentukan di DevSettings.plist. Kemudian memberikan token perangkat ke hub pemberitahuan, sehingga hub dapat mengirim pemberitahuan.

Membuat file header notificationDetailViewController

  1. Mirip dengan instruksi sebelumnya, tambahkan file header lain bernama SetupViewController.h. Ganti konten file header baru dengan kode berikut:

    #import <UIKit/UIKit.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface SetupViewController : UIViewController
    
    @end
    
    NS_ASSUME_NONNULL_END
    
  2. Tambahkan file implementasi SetupViewController.m. Ganti konten file dengan kode berikut, yang mengimplementasikan metode 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. Untuk memverifikasi tidak ada kegagalan, buat dan jalankan aplikasi di perangkat Anda.

Mengirim pengujian pemberitahuan push

Anda dapat menguji pemberitahuan penerimaan di aplikasi Anda dengan opsi Uji Pengiriman di portal Azure. Ini mengirimkan pemberitahuan push pengujian ke perangkat Anda.

Test send

Pemberitahuan push biasanya dikirim dalam layanan ujung belakang seperti Mobile Apps atau ASP.NET menggunakan pustaka yang kompatibel. Jika pustaka tidak tersedia untuk ujung belakang, Anda juga dapat menggunakan REST API secara langsung untuk mengirim pesan pemberitahuan.

Berikut ini adalah daftar beberapa tutorial lain yang mungkin ingin Anda lihat untuk mengirim pemberitahuan:

Verifikasi bahwa aplikasi Anda menerima pemberitahuan push

Untuk menguji pemberitahuan push di iOS, Anda harus menyebarkan aplikasi ke perangkat iOS fisik. Anda tidak dapat mengirim pemberitahuan push Apple dengan menggunakan simulator iOS.

  1. Jalankan aplikasi dan verifikasi bahwa pendaftaran telah berhasil, lalu tekan OK.

    Register

  2. Selanjutnya, kirim pemberitahuan push pengujian dari portal Azure, seperti yang dijelaskan di bagian sebelumnya.

  3. Pemberitahuan push dikirim ke semua perangkat yang terdaftar untuk menerima pemberitahuan dari pemberitahuan hub yang diberikan.

    Send test

Langkah berikutnya

Dalam contoh sederhana ini, Anda menyiarkan pemberitahuan push ke semua perangkat iOS Anda yang terdaftar. Untuk mempelajari cara mengirim pemberitahuan push ke perangkat iOS tertentu, lanjutkan ke tutorial berikut:

Tutorial: Pemberitahuan push ke perangkat tertentu

Untuk informasi lebih lanjut, baca artikel berikut: