Rich Notification: apa itu, konten media dan pembuatan notifikasi

Penulis: IT Sectr Diterbitkan: 2026-03-20 Waktu membaca: 8 mnt

Rich Notification adalah format notifikasi push iOS yang diperluas yang mencakup lampiran media, tombol interaktif, dan antarmuka kustom untuk meningkatkan pengalaman pengguna. Berbeda dengan notifikasi teks standar, Rich Notification dapat menampilkan gambar, video, dan audio langsung di banner atau layar kunci. Menurut Apple Developer Documentation, 2026, UNNotificationAttachment mendukung hingga 10 file dalam satu notifikasi dan secara otomatis menskalakannya untuk tampilan optimal di semua perangkat.

Poin Utama

  • Lampiran media — Rich Notification mendukung gambar (JPEG, PNG, GIF), video (MP4, MOV hingga 30 detik) dan audio (MP3, AAC, WAV) melalui UNNotificationAttachment.
  • Interaktivitas — tombol dan input teks ditambahkan melalui UNNotificationAction dan UNTextInputNotificationAction, terikat pada kategori notifikasi.
  • Service Extension — komponen wajib untuk mengunduh media: ekstensi ini mengunduh lampiran dari URL di payload dan menambahkannya ke konten.
  • Content Extension — membuat antarmuka notifikasi yang sepenuhnya kustom dengan UI arbitrer, animasi, dan penanganan gestur.
  • Batas — ukuran maksimum lampiran 10 MB, batas memori ekstensi 50 MB, waktu pemrosesan hingga 30 detik.

Apa itu Rich Notification

Rich Notification adalah notifikasi push iOS yang tidak hanya berisi teks, tetapi juga lampiran media, elemen interaktif, dan antarmuka yang dikustomisasi. Istilah “rich” (kaya) mencerminkan kemampuan untuk menyertakan gambar, video, audio, tombol tindakan, dan input teks dalam notifikasi, mengubah pemberitahuan sederhana menjadi elemen interaktif yang lengkap.

Evolusi notifikasi di iOS

Apple memperkenalkan dukungan Rich Notification di iOS 10 bersama dengan framework UserNotifications. Sebelumnya, notifikasi push hanya dapat berisi teks, suara, dan badge. iOS 10 memperkenalkan UNNotificationServiceExtension dan UNNotificationContentExtension, yang membuka kemungkinan modifikasi konten dan pembuatan antarmuka kustom. Di versi selanjutnya, ditambahkan dukungan untuk SwiftUI di Content Extension, GIF animasi, dan penskalaan media yang lebih baik.

Keunggulan dibandingkan notifikasi standar

Rich Notification secara signifikan meningkatkan keterlibatan pengguna. Penelitian Apple menunjukkan bahwa notifikasi dengan gambar menerima 30–40% lebih banyak interaksi dibandingkan dengan yang hanya teks. Gambar produk, pratinjau video, atau tombol respons cepat memungkinkan pengguna mengambil keputusan langsung dari notifikasi tanpa membuka aplikasi. Ini mempersingkat jalur menuju tindakan yang dituju dan meningkatkan pengalaman pengguna.

Jenis lampiran media dan formatnya

UNNotificationAttachment mendukung tiga kategori media: gambar, video, dan audio. Setiap jenis memiliki batasan sendiri dalam hal format, ukuran, dan durasi. Sistem secara otomatis menskalakan gambar ke ukuran notifikasi dan membatasi durasi video hingga 30 detik untuk optimasi kinerja.

Jenis mediaFormat yang didukungUkuran maksimum
GambarJPEG, PNG, GIF, TIFF10 MB per file
VideoMPEG, MP4, MOV10 MB, hingga 30 detik
AudioMP3, AAC, WAV, CAF10 MB

Gambar dan GIF animasi

Gambar secara otomatis dipotong dan diskalakan oleh sistem untuk ditampilkan dalam tampilan notifikasi yang ringkas dan diperluas. GIF animasi didukung mulai iOS 12 dan diputar secara otomatis saat melihat notifikasi. Ukuran gambar yang direkomendasikan adalah 1024x1024 piksel, yang memastikan tampilan jelas di semua perangkat, termasuk iPad dengan layar besar.

Lampiran video dan audio

Video di Rich Notification diputar tanpa suara secara default — pengguna dapat mengaktifkan suara melalui tombol di pemutar. Durasi video maksimum adalah 30 detik, setelah itu pemutaran berhenti. Lampiran audio dapat digunakan untuk pesan suara atau pratinjau audio dan diputar saat mengetuk notifikasi dalam tampilan yang diperluas.

Tombol interaktif dan tindakan

Tindakan interaktif memungkinkan pengguna melakukan operasi langsung dari notifikasi tanpa membuka aplikasi. Tindakan didaftarkan melalui UNNotificationCategory dan UNNotificationAction saat aplikasi dimulai. Setiap tindakan dapat bersifat latar belakang (tanpa membuka aplikasi) atau latar depan (membuka aplikasi untuk menyelesaikan operasi).

UNNotificationAction dan UNTextInputNotificationAction

UNNotificationAction adalah tombol dengan judul dan pengubah opsional, seperti requiresAuthentication (memerlukan Face ID/Touch ID) atau destructive (disorot dengan warna merah). UNTextInputNotificationAction memperluas kemampuan ini dengan menambahkan bidang input teks — ideal untuk respons cepat terhadap pesan atau komentar. Tindakan ditampilkan saat menekan lama notifikasi atau menggeser ke bawah.

Pendaftaran kategori dan tindakan

Kategori notifikasi menghubungkan jenis konten dengan kumpulan tindakan yang tersedia. Proses pendaftaran dilakukan di AppDelegate saat aplikasi dimulai melalui UNUserNotificationCenter.current().setNotificationCategories. Kategori ditentukan di server di bidang category payload JSON, dan sistem secara otomatis menerapkan kumpulan tindakan yang sesuai ke notifikasi.

Penanganan klik pada tindakan

Ketika pengguna mengklik tombol atau mengirim teks, sistem memanggil delegat UNUserNotificationCenterDelegate dengan metode didReceive response. UNNotificationResponse berisi pengidentifikasi tindakan dan teks yang dimasukkan (untuk UNTextInputNotificationAction). Berdasarkan informasi ini, aplikasi menjalankan logika bisnis yang sesuai: mengirim pesan, mengonfirmasi tindakan, atau membuka layar tertentu.

Implementasi Rich Notification di Swift

Mari kita lihat siklus lengkap pembuatan Rich Notification: dari pendaftaran kategori di AppDelegate hingga pemrosesan di Service Extension dan penampilan. AppDelegate mendaftarkan kategori dengan tombol, server mengirim notifikasi dengan URL gambar, Service Extension mengunduh media, dan Content Extension menampilkan antarmuka kustom dengan tombol.

swift
// AppDelegate — pendaftaran kategori dan tindakan
func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions:
    [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {

    let replyAction = UNTextInputNotificationAction(
        identifier: "reply",
        title: "Balas",
        options: [.authenticationRequired])

    let likeAction = UNNotificationAction(
        identifier: "like",
        title: "Suka",
        options: [])

    let category = UNNotificationCategory(
        identifier: "social_post",
        actions: [replyAction, likeAction],
        intentIdentifiers: [],
        options: [])

    UNUserNotificationCenter.current()
        .setNotificationCategories([category])
    return true
}

Service Extension untuk mengunduh gambar

Setelah menerima notifikasi push dengan kategori “social_post” dan URL gambar di bidang kustom, Service Extension diaktifkan. Ekstensi mengunduh gambar melalui jaringan, membuat UNNotificationAttachment dengan pengidentifikasi unik, dan menambahkannya ke konten. Penting untuk memeriksa ukuran file yang diunduh — jika melebihi 10 MB, attachment tidak akan dibuat, dan sistem akan menampilkan notifikasi tanpa media.

swift
class NotificationService: UNNotificationServiceExtension {

    override func didReceive(
        _ request: UNNotificationRequest,
        withContentHandler contentHandler:
        @escaping (UNNotificationContent) -> Void
    ) {
        let content = (request.content.mutableCopy()
            as! UNMutableNotificationContent)
        guard let urlString = content.userInfo["media-url"]
            as? String,
            let url = URL(string: urlString)
        else { contentHandler(request.content); return }

        URLSession.shared.downloadTask(with: url) {
            location, _, _ in
            guard let location = location else {
                contentHandler(content); return }
            let attachment = try! UNNotificationAttachment(
                identifier: "media", url: location,
                options: [UNNotificationAttachmentOptionsTypeHintKey:
                    "jpg"])
            content.attachments = [attachment]
            contentHandler(content)
        }.resume()
    }
}

Pengujian Rich Notification

Untuk menguji Rich Notification tanpa server, gunakan simulator iOS dan kirim push melalui terminal dengan xcrun simctl push. Di payload, tentukan wajib mutable-content: 1 untuk mengaktifkan Service Extension dan category untuk menampilkan tindakan. Perintah mengirim push dari file JSON langsung ke simulator yang dipilih, memungkinkan iterasi cepat tanpa menyiapkan infrastruktur server.

Content Extension dan antarmuka kustom

UNNotificationContentExtension memungkinkan penggantian lengkap antarmuka notifikasi standar dengan tampilan UIKit atau SwiftUI kustom. Ekstensi diaktifkan ketika pengguna memperluas notifikasi (force touch atau geser ke bawah) dan dapat berisi tombol, penggeser, animasi, dan komponen UI lainnya. Ukuran antarmuka menyesuaikan dengan konten menggunakan Auto Layout.

Storyboard dan SwiftUI di Content Extension

Content Extension didasarkan pada storyboard dengan tampilan yang mewarisi UIViewController. SwiftUI View diintegrasikan melalui UIHostingController mulai iOS 16, memungkinkan penggunaan pendekatan modern untuk membangun antarmuka. Untuk kompatibilitas mundur dengan iOS 14–15, disarankan menggunakan UIKit dengan file xib. Antarmuka menerima konten yang dimodifikasi dari Service Extension melalui UNNotificationContent.

Penanganan tindakan pengguna

Content Extension mengimplementasikan protokol UNNotificationContentExtension dengan metode didReceive response. UNNotificationResponse berisi informasi tentang tombol yang ditekan atau teks yang dimasukkan. Ekstensi dapat memperbarui antarmuka tanpa menutup notifikasi atau memanggil completion handler untuk menutupnya. Ini memungkinkan pembuatan skenario interaksi cepat, seperti “suka” dengan umpan balik visual langsung di notifikasi.

Rekomendasi desain

Apple merekomendasikan agar Content Extension ringkas dan fungsional, menghindari elemen yang berlebihan. Tinggi maksimum notifikasi yang diperluas sekitar 400 titik, setelah itu konten dapat digulir. Gunakan font dan spasi sistem untuk keseragaman dengan notifikasi lainnya. Uji pada berbagai ukuran layar untuk memastikan antarmuka ditampilkan dengan benar baik di iPhone maupun iPad.

Pertanyaan yang Sering Diajukan

Berapa ukuran maksimum gambar di Rich Notification?

Ukuran maksimum satu lampiran media adalah 10 MB. Jika melebihi batas, UNNotificationAttachment tidak dibuat, dan notifikasi ditampilkan tanpa media. Disarankan untuk mengoptimalkan gambar hingga 1–3 MB untuk pengunduhan cepat di Service Extension.

Apakah Rich Notification berfungsi di semua model iPhone?

Rich Notification didukung di semua perangkat dengan iOS 10 dan lebih baru, termasuk iPhone 5s dan yang lebih baru. Content Extension dengan UI kustom tersedia mulai iOS 12. SwiftUI di Content Extension — mulai iOS 16. Pada versi yang lebih lama, notifikasi ditampilkan dalam bentuk standar.

Bisakah saya menggunakan GIF di Rich Notification?

Ya, GIF animasi didukung mulai iOS 12. GIF diunduh melalui UNNotificationAttachment sebagai gambar biasa dan diputar secara otomatis saat melihat notifikasi. Ukuran GIF dibatasi hingga 10 MB yang sama dengan format lainnya.

Berapa banyak tombol yang dapat ditambahkan ke notifikasi?

Maksimum 4 tindakan per notifikasi saat mendaftarkan kategori. Jika lebih banyak, sistem menampilkan 4 pertama dan mengabaikan sisanya. Disarankan menggunakan 2–3 tombol untuk UX optimal — terlalu banyak opsi membebani antarmuka.

Apakah diperlukan server untuk mengirim Rich Notification?

Ya, server harus mengirim push melalui APNS (Apple Push Notification service) dengan payload JSON yang berisi URL file media di bidang kustom dan bendera mutable-content: 1. Server juga menentukan category untuk aktivasi Content Extension dan tindakan.

Ringkasan

  • Rich Notification — notifikasi push iOS dengan lampiran media, tombol interaktif, dan UI kustom yang meningkatkan keterlibatan pengguna.
  • Media yang didukung — gambar JPEG/PNG/GIF, video MP4/MOV (hingga 30 dtk), audio MP3/AAC/WAV dengan batas 10 MB per file.
  • Service Extension mengunduh media dari URL di payload dan menambahkan UNNotificationAttachment ke konten notifikasi.
  • Tindakan interaktif — hingga 4 tombol per kategori, termasuk input teks melalui UNTextInputNotificationAction.
  • Content Extension mengganti antarmuka standar dengan tampilan UIKit/SwiftUI kustom dengan elemen arbitrer.
  • Content Extension mengimplementasikan protokol UNNotificationContentExtension dengan metode didReceive untuk penanganan klik dan pembaruan UI waktu nyata.
  • Rich Notification memerlukan konfigurasi di semua tingkat: server (APNS), Service Extension (unduh media), dan AppDelegate (pendaftaran kategori).

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga