Tutorial: Membuat pemberitahuan push di aplikasi iOS Anda
Tutorial ini memandu Anda untuk membuat pemberitahuan push di aplikasi iOS Anda dengan menggunakan Azure Communication Services Chat SDK.
Pemberitahuan push memperingatkan pengguna tentang pesan masuk di utas obrolan saat aplikasi seluler tidak berjalan di latar depan. Azure Communication Services mendukung dua versi pemberitahuan push:
Versi dasar: Nomor lencana muncul di ikon aplikasi, perangkat memutar suara pemberitahuan, dan banner pemberitahuan pop-up muncul.
Versi lanjutan: Selain fitur yang didukung dalam versi dasar, Anda dapat menyesuaikan judul dan pratinjau pesan di banner pemberitahuan.
Di tutorial ini, Anda akan:
- Siapkan sertifikat Apple Push Notification service (APN).
- Konfigurasikan Xcode untuk pemberitahuan push.
- Terapkan versi dasar atau lanjutan pemberitahuan push.
- Uji pemberitahuan di aplikasi Anda.
- Siapkan perpanjangan pendaftaran otomatis untuk pemberitahuan push.
Mengunduh kode
Akses kode sampel untuk tutorial ini di GitHub.
Prasyarat
Selesaikan semua langkah prasyarat di Mulai Cepat: Tambahkan Obrolan ke aplikasi Anda.
Buat hub pemberitahuan Azure dalam langganan yang sama dengan sumber daya Communication Services Anda, lalu tautkan hub pemberitahuan ke sumber daya Communication Services Anda. Lihat Provisi hub pemberitahuan.
Buat sertifikat APN .p12 dan atur di hub pemberitahuan
Jika Anda bukan pelanggan internal Microsoft, lakukan semua langkah dalam prosedur berikut.
Jika Anda adalah pelanggan internal Microsoft, kirimkan tiket dan berikan ID bundel aplikasi Anda untuk mendapatkan sertifikat .p12. Kemudian lewati ke langkah terakhir dalam prosedur berikut.
Masuk ke Portal Pengembang Apple.
Buka ID Aplikasi Pengidentifikasi>, Pengidentifikasi & Profil>, lalu pilih ID aplikasi yang terkait dengan aplikasi Anda.
Pada halaman untuk ID aplikasi Anda, pilih Pemberitahuan Push Kemampuan>, lalu pilih Simpan.
Dalam dialog Ubah Kemampuan Aplikasi yang muncul, pilih Konfirmasi.
Pada halaman untuk ID aplikasi Anda, pilih KonfigurasiKan Pemberitahuan> Push Kemampuan>, lalu buat pilihan berikut:
- Untuk menguji pemberitahuan push saat mengembangkan aplikasi iOS, pilih tombol Buat Sertifikat di bawah Sertifikat SSL Pengembangan.
- Untuk mengirim pemberitahuan push dalam produksi, pilih tombol Buat Sertifikat di bawah Sertifikat SSL Produksi.
Area Buat Sertifikat Baru muncul di halaman Sertifikat, Pengidentifikasi , & Profil.
Di area ini, Anda mengunggah permintaan penandatanganan sertifikat (CSR):
Pada tab browser baru, ikuti halaman bantuan Apple ini untuk membuat CSR dan menyimpan file sebagai App name.cer. Instruksinya termasuk menggunakan Asisten Sertifikat untuk meminta sertifikat dan untuk mengisi informasi sertifikat.
Seret file .cer ke area Pilih File . Lalu pilih Lanjutkan di sudut kanan atas.
Pilih Unduh.
Simpan file secara lokal dalam format .p12.
Buka file .cer yang Anda unduh. Di Akses Rantai Kunci, pilih sertifikat Anda, klik kanan, lalu ekspor sertifikat Anda dalam format .p12.
Buka hub pemberitahuan Anda. Di bawah Pengaturan, pilih Apple (APNS). Kemudian isi detail sertifikat:
- Untuk Mode Autentikasi, pilih Sertifikat.
- Untuk Unggah Sertifikat, unggah file .p12 yang baru saja Anda buat.
- Untuk Mode Aplikasi, pilih mode berdasarkan kebutuhan Anda.
Setelah Anda selesai memasukkan semua informasi, pilih Simpan.
Mengonfigurasi Xcode
Di Xcode, buka Menandatangani & Kapabilitas.
Tambahkan kapabilitas dengan memilih + Capability, lalu pilih Pemberitahuan Push.
Tambahkan kapabilitas lain dengan memilih + Capability, lalu pilih Mode Latar Belakang.
Di bawah Mode Latar Belakang, pilih Pemberitahuan jarak jauh.
Untuk Target Pod - AzureCore, atur Hanya Memerlukan API App-Extension-Safe sebagai Tidak.
Menerapkan pemberitahuan push
Versi dasar
Jika Anda ingin menerapkan versi dasar pemberitahuan push, Anda perlu mendaftar untuk pemberitahuan jarak jauh dengan APN. Lihat kode sampel untuk melihat implementasi terkait di AppDelegate.swift.
Versi tingkat lanjut
Jika Anda ingin menerapkan versi lanjutan pemberitahuan push, Anda perlu menyertakan item berikut di aplikasi Anda. Alasannya adalah bahwa enkripsi konten pelanggan (misalnya, konten pesan obrolan dan nama tampilan pengirim) dalam payload pemberitahuan push memerlukan beberapa solusi.
Penyimpanan data untuk kunci enkripsi
Buat penyimpanan data persisten di perangkat iOS. Penyimpanan data ini harus dapat berbagi data antara aplikasi utama dan ekstensi aplikasi.
Dalam kode sampel untuk tutorial ini, pilih Grup Aplikasi sebagai penyimpanan data dengan mengambil tindakan ini:
Tambahkan kemampuan Grup Aplikasi ke target aplikasi Anda (aplikasi utama dan ekstensi aplikasi) dengan mengikuti langkah-langkah dalam artikel Apple Menambahkan kemampuan ke aplikasi Anda.
Konfigurasikan Grup Aplikasi dengan mengikuti langkah-langkah dalam artikel Apple Mengonfigurasi Grup Aplikasi. Pastikan aplikasi utama dan ekstensi aplikasi Anda memiliki nama kontainer yang sama.
Ekstensi Layanan Pemberitahuan
Terapkan Ekstensi Layanan Pemberitahuan yang dibundel dengan aplikasi utama. Ekstensi aplikasi ini digunakan untuk mendekripsi payload pemberitahuan push saat perangkat menerimanya.
Buka Tambahkan ekstensi aplikasi layanan ke proyek Anda di dokumentasi Apple dan ikuti langkah-langkahnya.
Buka Menerapkan metode handler ekstensi Anda di dokumentasi Apple. Apple menyediakan kode default untuk mendekripsi data, dan Anda dapat mengikuti struktur keseluruhan untuk tutorial ini. Namun, karena Anda menggunakan Chat SDK untuk dekripsi, Anda perlu mengganti bagian yang dimulai dari
// Try to decode the encrypted message data
dengan logika yang disesuaikan. Lihat kode sampel untuk melihat implementasi terkait di NotificationService.swift.
Implementasi protokol PushNotificationKeyStorage
Protokol PushNotificationKeyStorage
diperlukan untuk versi lanjutan pemberitahuan push. Anda dapat menggunakan kelas default AppGroupPushNotificationKeyStorage
yang disediakan SDK Obrolan. Jika Anda tidak menggunakan Grup Aplikasi sebagai penyimpanan kunci, atau jika Anda ingin menyesuaikan metode penyimpanan kunci, buat kelas Anda sendiri yang sesuai dengan PushNotificationKeyStorage
protokol.
PushNotificationKeyStorage
mendefinisikan dua metode:
onPersistKey(encryptionKey:expiryTime)
: Metode ini digunakan untuk mempertahankan kunci enkripsi di penyimpanan perangkat iOS pengguna. SDK Obrolan menetapkan 45 menit sebagai waktu kedaluwarsa untuk kunci enkripsi. Jika Anda ingin pemberitahuan push berlaku selama lebih dari 45 menit, Anda perlu menjadwalkanchatClient.startPushNotifications(deviceToken:)
panggilan lebih sering (misalnya, setiap 15 menit) sehingga kunci enkripsi baru dapat didaftarkan sebelum kunci lama kedaluwarsa.onRetrieveKeys() -> [String]
: Metode ini digunakan untuk mengambil kunci valid yang disimpan sebelumnya. Anda memiliki fleksibilitas untuk menyediakan kustomisasi berdasarkan penyimpanan data yang Anda pilih sebelumnya.
Dalam ekstensi protokol, Chat SDK menyediakan implementasi decryptPayload(notification:) -> PushNotificationEvent
metode yang dapat Anda gunakan. Lihat kode sampel untuk melihat implementasi terkait di NotificationService.swift.
Menguji pemberitahuan Anda
Buat utas obrolan dengan Pengguna A dan Pengguna B.
Masukkan nilai dan
<ACS_RESOURCE_ENDPOINT>
Pengguna A<ACESS_TOKEN>
ke dalam AppSettings.plist.Atur Aktifkan Bitcode ke Tidak untuk dua target Pod: AzureCommunicationChat dan Trouter.
Colokkan perangkat iOS ke Mac Anda dan jalankan program. Saat Anda diminta untuk mengotorisasi pemberitahuan push di perangkat, pilih Izinkan.
Sebagai Pengguna B, kirim pesan obrolan. Konfirmasikan bahwa Pengguna A menerima pemberitahuan push di perangkat iOS.
Menerapkan perpanjangan pendaftaran
Agar Microsoft menyediakan layanan obrolan yang aman, pendaftaran untuk pemberitahuan push di perangkat iOS tetap berlaku hanya selama 45 menit. Untuk mempertahankan fungsionalitas pemberitahuan push, Anda perlu menerapkan perpanjangan pendaftaran di aplikasi klien.
Tutorial ini mengusulkan dua solusi yang selaras dengan pedoman resmi Apple. Kami menyarankan agar Anda menerapkan kedua solusi bersama-sama untuk meningkatkan efektivitasnya.
Catatan
Berbagai faktor mungkin memengaruhi efektivitas salah satu solusi. Misalnya, status baterai perangkat, kondisi jaringan, dan pembatasan khusus iOS dapat memengaruhi kemampuan aplikasi untuk menjalankan tugas latar belakang. Untuk informasi selengkapnya, lihat video Kemajuan di Eksekusi Latar Belakang Aplikasi dan artikel Mendorong pembaruan latar belakang ke aplikasi Anda dari Apple.
Solusi 1: Tugas latar belakang
Tugas latar belakang menawarkan cara untuk melakukan aktivitas bahkan ketika aplikasi tidak berada di latar depan. Saat Anda menerapkan tugas latar belakang, aplikasi Anda dapat meminta lebih banyak waktu untuk menyelesaikan tugas tertentu, seperti memperbarui pendaftaran pemberitahuan push.
Bagian berikut ini menjelaskan cara menggunakan tugas latar belakang untuk perpanjangan pendaftaran.
Mengonfigurasi refresh otomatis token akses pengguna
Untuk memastikan akses tanpa gangguan ke layanan obrolan, Anda perlu mempertahankan token akses pengguna yang valid. Token biasanya memiliki periode validitas default 24 jam, setelah itu kedaluwarsa dan memerlukan perpanjangan. Menerapkan mekanisme refresh otomatis membantu menjamin bahwa token valid setiap kali aplikasi obrolan diaktifkan.
Chat SDK menyederhanakan manajemen token dengan mengotomatiskan proses refresh saat penyegaran token akses kustom diterapkan. Selesaikan langkah-langkah berikut untuk mengonfigurasi aplikasi obrolan Anda untuk mendukung refresh token otomatis:
Untuk membantu memastikan aplikasi obrolan Anda mempertahankan akses pengguna yang berkelanjutan dan aman, Anda perlu menerapkan tingkat layanan yang didedikasikan untuk mengeluarkan token. Salah satu opsinya adalah menggunakan Azure Functions untuk tujuan ini.
Untuk membuat fungsi Azure, lihat artikel Membangun layanan akses pengguna tepercaya menggunakan Azure Functions . Ini menjelaskan cara menyiapkan aplikasi fungsi Anda dan menyebarkan kode yang diperlukan untuk menerbitkan token.
Setelah Mengonfigurasi fungsi Azure Anda:
Dapatkan URL penerbit token dari portal Azure. Aplikasi obrolan Anda menggunakan URL ini untuk meminta token baru.
Buat dan integrasikan penyegaran token dalam aplikasi obrolan Anda. Komponen ini meminta token baru dan menginisialisasi klien obrolan untuk perpanjangan token otomatis yang mulus.
Kode sampel untuk penyegaran token dan integrasinya dengan klien obrolan tersedia di repositori GitHub untuk aplikasi sampel.
Mengaktifkan dan menjadwalkan tugas latar belakang
Untuk mengaktifkan dan menjadwalkan tugas latar belakang di app iOS Anda, ikuti langkah-langkah di artikel Apple Menggunakan tugas latar belakang untuk memperbarui aplikasi Anda.
Untuk implementasi praktis, lihat repositori GitHub untuk aplikasi sampel. Sampel yang disediakan menggunakan yang BGProcessingTask
dikonfigurasi untuk memulai tidak lebih cepat dari satu menit ke masa depan, menunjukkan cara mengambil data secara efisien di latar belakang.
Solusi 2: Pemberitahuan jarak jauh
Pemberitahuan jarak jauh adalah mekanisme bagi aplikasi iOS untuk menjalankan tugas latar belakang sebagai respons terhadap pemicu eksternal. Anda dapat menggunakan pemberitahuan jarak jauh untuk tugas seperti merefresh pendaftaran tanpa intervensi pengguna.
Untuk menggunakan pemberitahuan jarak jauh untuk menjalankan tugas latar belakang:
Menerapkan mekanisme pemicu.
Misalnya, Anda dapat menggunakan aplikasi fungsi Azure sebagai mekanisme pemicu. Ini memungkinkan Anda menjalankan kode sebagai respons terhadap berbagai pemicu, termasuk permintaan HTTP, sehingga berguna untuk memulai pemberitahuan push senyap. Ingatlah untuk mengimplementasikan registri perangkat di ujung Anda sehingga aplikasi fungsi tahu di mana harus mengirimkan pemberitahuan.
Siapkan hub pemberitahuan.
Layanan Azure Notification Hubs menyediakan infrastruktur pemberitahuan push yang dapat diskalakan yang dapat mengirim pemberitahuan ke platform apa pun (iOS, Android, Windows, dan sebagainya) dari ujung belakang mana pun (cloud atau lokal).
Anda dapat menggunakan kembali hub pemberitahuan yang sama dengan yang Anda gunakan untuk pemberitahuan push reguler. Jika Anda ingin menyiapkan yang baru, lihat dokumentasi Azure Notification Hubs.
Konfigurasikan aplikasi fungsi Azure untuk pemberitahuan reguler.
Sesuaikan aplikasi fungsi untuk mengirim pemberitahuan jarak jauh secara berkala melalui hub pemberitahuan. Pemberitahuan ini diteruskan ke APN dan diarahkan ke perangkat yang ditentukan. Untuk petunjuk selengkapnya, lihat Pengikatan output Notification Hubs untuk Azure Functions.
Menangani pemberitahuan di aplikasi Anda.
Di aplikasi iOS Anda, terapkan metode instans aplikasi untuk memicu refresh pendaftaran otomatis saat menerima pemberitahuan senyap.
Untuk informasi selengkapnya, lihat artikel Apple Menyiapkan server pemberitahuan jarak jauh.