Mendaftarkan Notifikasi Push
Minta izin dan dapatkan token perangkat.
Mendaftarkan Notifikasi Push adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.
Cara Kerja Push dari Awal hingga Akhir
Notifikasi push berjalan dari server Anda, melalui layanan Notifikasi Push Apple (APNs), menuju perangkat tertentu. Perangkat membuktikan identitasnya dengan token perangkat yang diterbitkan APNs. Sebelum semua itu, pengguna harus memberikan izin dan aplikasi harus melakukan pendaftaran.
// Flow: App registers -> APNs returns device token ->
// you send token to your server -> server pushes via APNsPusat Notifikasi
UNUserNotificationCenter adalah satu-satunya objek yang Anda gunakan untuk semua hal lokal dan jarak jauh: meminta otorisasi, mengatur delegasi, menjadwalkan notifikasi lokal, dan membaca pengaturan. Dapatkan instans bersama.
import UserNotifications
let center = UNUserNotificationCenter.current()
// All notification configuration goes through centerMeminta Otorisasi
Anda harus meminta izin pengguna sebelum menampilkan notifikasi. requestAuthorization(options:) menampilkan permintaan sistem dan mengembalikan apakah pengguna menyetujuinya. Mintalah hanya opsi yang Anda perlukan: .alert, .sound, .badge.
import UserNotifications
func requestAuth() async throws -> Bool {
let center = UNUserNotificationCenter.current()
return try await center.requestAuthorization(
options: [.alert, .sound, .badge])
}Mendaftar ke APNs
Otorisasi berbeda dari pendaftaran. Setelah (atau bersamaan dengan) memperoleh izin, panggil registerForRemoteNotifications() pada aktor utama. Tindakan ini meminta token perangkat dari APNs. Panggilan ini harus dijalankan pada utas utama.
import UIKit
@MainActor
func registerForPush() {
UIApplication.shared.registerForRemoteNotifications()
}Menerima Token Perangkat
Jika berhasil, delegasi aplikasi memicu didRegisterForRemoteNotificationsWithDeviceToken dengan token Data. Anda mengonversinya menjadi teks heksadesimal dan mengirimkannya ke server, yang menggunakannya untuk menargetkan perangkat ini.
import UIKit
func application(
_ app: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken
deviceToken: Data) {
let token = deviceToken.map {
String(format: "%02x", $0) }.joined()
print("APNs token:", token)
// send token to your backend
}Menangani Kegagalan Pendaftaran
Pendaftaran dapat gagal—tidak ada jaringan, hak akses APNs tidak tersedia, atau aplikasi berjalan di lingkungan yang tidak didukung. Implementasikan didFailToRegisterForRemoteNotificationsWithError untuk mencatat dan memulihkan keadaan dengan baik, bukan menyebabkan aplikasi mogok.
import UIKit
func application(
_ app: UIApplication,
didFailToRegisterForRemoteNotificationsWithError
error: Error) {
print("Push registration failed:", error)
}Token Dapat Berubah
Token perangkat tidak permanen. Token ini berubah saat pengguna memulihkan dari cadangan, memasang ulang aplikasi, atau berpindah ke perangkat baru. Selalu lakukan pendaftaran setiap kali aplikasi diluncurkan dan unggah token terbaru, lalu ganti token lama di sisi server.
// Best practice: register on each launch,
// always upload the freshly received token,
// never cache a token as permanent.
let rule = "re-register every launch"
_ = ruleMemeriksa Pengaturan Saat Ini
Pengguna mungkin mencabut izin nanti melalui Pengaturan. Sebelum mengandalkan notifikasi, kueri getNotificationSettings untuk membaca status otorisasi saat ini dan fitur mana yang diizinkan.
import UserNotifications
func currentStatus() async -> UNAuthorizationStatus {
let settings = await UNUserNotificationCenter
.current().notificationSettings()
return settings.authorizationStatus
}Otorisasi Sementara
Opsi .provisional memungkinkan notifikasi tiba secara diam-diam di Pusat Notifikasi tanpa menampilkan permintaan di awal. Ini berguna agar pengguna dapat mencoba notifikasi sebelum memutuskan, dengan opsi untuk mempertahankan atau menonaktifkannya.
import UserNotifications
func requestQuiet() async throws -> Bool {
try await UNUserNotificationCenter.current()
.requestAuthorization(
options: [.alert, .sound, .provisional])
}Kemampuan yang Diperlukan
Tidak satu pun dari semua ini akan berfungsi tanpa mengaktifkan kemampuan Notifikasi Push pada target Xcode Anda, yang menambahkan hak akses aps-environment. Untuk pengiriman di latar belakang, Anda juga harus mengaktifkan kemampuan Background Modes dengan Remote notifications.
// Xcode target > Signing & Capabilities:
// + Push Notifications
// + Background Modes > Remote notifications
let caps = "entitlements required"
_ = capsMenggabungkan Pendaftaran
Alur awal yang bersih: minta otorisasi, lalu jika disetujui, lakukan pendaftaran notifikasi jarak jauh pada aktor utama. Token kemudian tiba melalui panggilan balik delegasi untuk diunggah.
import UIKit
import UserNotifications
func setupPush() async {
let center = UNUserNotificationCenter.current()
let granted = (try? await center.requestAuthorization(
options: [.alert, .sound, .badge])) ?? false
if granted {
await MainActor.run {
UIApplication.shared.registerForRemoteNotifications()
}
}
}Pemeriksaan Singkat
Ingat kembali hubungan antara otorisasi dan pendaftaran.
Ringkasan
Anda telah mempelajari cara mendaftar untuk notifikasi push:
- Gunakan
UNUserNotificationCenteruntuk meminta otorisasi.alert/.sound/.badge. - Otorisasi dan pendaftaran adalah dua hal terpisah; panggil
registerForRemoteNotifications()pada aktor utama. - Konversikan token
Datake heksadesimal lalu unggah; lakukan pendaftaran ulang setiap kali aplikasi diluncurkan karena token dapat berubah. - Aktifkan kemampuan Notifikasi Push dan pertimbangkan otorisasi
.provisional.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mendaftarkan Notifikasi Push” gratis?
Ya — teks lengkap “Mendaftarkan Notifikasi Push” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mendaftarkan Notifikasi Push”?
Minta izin dan dapatkan token perangkat. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Swift Academy?
Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Mendaftarkan Notifikasi Push” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mendaftarkan Notifikasi Push
- Menangani Payload Notifikasi
- Tugas Latar Belakang dan Penyegaran
- Tindakan dan Kategori Notifikasi