Atribusi Notifikasi Native untuk Aplikasi Web di macOS

Marijn Kruisselbrink
Marijn Kruisselbrink
Dan Murphy
Dan Murphy

Dipublikasikan: 16 Juli 2026

Mulai Chrome 152, Progressive Web App (PWA) yang diinstal di macOS akan memiliki notifikasi yang secara native dikaitkan dengan PWA itu sendiri, bukan dengan Google Chrome.

Hal ini merupakan peningkatan signifikan dalam pengalaman pengguna, sehingga aplikasi web terasa lebih terintegrasi ke dalam macOS. Namun, hal ini juga memperkenalkan perubahan penting pada cara izin notifikasi ditangani dan cara perilaku API notifikasi tertentu.

Apa saja yang berubah?

Sebelumnya, semua notifikasi yang dikirim oleh PWA dikaitkan dengan Chrome di tingkat OS. Di Pusat Notifikasi macOS, notifikasi tersebut muncul di bagian "Google Chrome", dan menggunakan ikon Chrome. Untuk menonaktifkan notifikasi, pengguna harus menggunakan kontrol dalam Chrome, bukan Setelan Sistem macOS.

Dengan atribusi notifikasi, saat situs diinstal sebagai PWA, macOS akan memperlakukannya sebagai aplikasi terpisah untuk notifikasi. Hal ini berlaku untuk PWA yang baru diinstal maupun PWA yang sebelumnya telah diinstal pengguna.

Manfaat:

  • Identitas merek: Notifikasi menampilkan nama dan ikon PWA sendiri di Pusat Notifikasi dan banner macOS.
  • Kontrol pengguna yang dikenal: Kontrol notifikasi untuk aplikasi ini kini muncul tepat di tempat yang diharapkan pengguna: di Setelan Sistem macOS (bukan Chrome).
  • Kontrol terperinci: Pengguna dapat mengelola setelan notifikasi aplikasi PWA satu per satu (misalnya, gaya pemberitahuan, perilaku layar kunci).
  • Mode fokus: PWA dapat diizinkan atau dibisukan satu per satu di Profil Fokus macOS (Jangan Ganggu).
Diatributkan ke 'Google Chrome' dengan ikon Chrome.
Sebelum: Dikaitkan dengan "Google Chrome" dengan ikon Chrome.
Ditampilkan sebagai 'Nama PWA' dengan ikon kustom PWA.
Setelah: Dikaitkan dengan "Nama PWA" dengan ikon kustom PWA.

Alur izin baru

Karena macOS kini memperlakukan PWA sebagai aplikasi terpisah, PWA harus mendapatkan izin notifikasi tingkat OS sebelum dapat menampilkan notifikasi. Hal ini mengubah alur izin untuk pengguna baru dan yang sudah ada.

Pengguna baru (permintaan izin pertama kali)

Jika pengguna menginstal PWA dan situs meminta izin notifikasi setelah penginstalan:

  1. Chrome akan melewati perintah izin tingkat browser (menu drop-down dari kolom URL).
  2. Chrome akan segera memicu perintah izin sistem macOS untuk PWA.
Dialog izin sistem macOS: Nama PWA ingin mengirimi Anda notifikasi. Notifikasi dapat mencakup pemberitahuan, suara, dan badge ikon, dengan tombol Jangan Izinkan dan Izinkan.
Dialog izin sistem macOS untuk PWA yang diinstal.
Diagram alur yang menunjukkan proses izin PWA. Dimulai dengan 'PWA Requests Permission' yang mengarah ke keputusan 'Installed?'. Jika 'Ya', perintah Chrome akan dilewati dan perintah sistem macOS akan ditampilkan. Jika 'Tidak', perintah browser Chrome akan ditampilkan, pengguna menginstal PWA, lalu perintah sistem macOS akan ditampilkan.
Diagram alur proses izin notifikasi PWA.

Pengguna yang sudah ada (jalur migrasi)

Jika pengguna telah memberikan izin notifikasi ke situs Anda di Chrome, lalu menginstal (atau telah menginstal) PWA, mereka tetap harus memberikan izin tingkat OS ke PWA.

Untuk membuat transisi ini semulus mungkin:

  1. Saat PWA pertama kali mencoba mengirim notifikasi, macOS akan menampilkan perintah izin sistem.
  2. Jika pengguna menyetujui, notifikasi akan terus berfungsi dengan lancar.
  3. Jika pengguna mengabaikan atau menutup perintah ini, PWA akan menampilkan indikator dalam aplikasi (biasanya di menu atau kolom judul aplikasi) yang memandu mereka ke Setelan Sistem macOS untuk mengaktifkan izin secara manual.
Mendorong PWA yang diinstal untuk memberi tahu pengguna bahwa notifikasi dinonaktifkan di Setelan Sistem Mac dengan tombol untuk membukanya.
Perintah dalam aplikasi di PWA yang memandu pengguna ke Setelan Sistem macOS.
Setelan aplikasi dengan opsi untuk mengaktifkan atau menonaktifkan notifikasi dan penunjuk di Setelan Sistem untuk mengaktifkan notifikasi.
Setelan aplikasi di Chrome dengan indikator untuk membuka Setelan Sistem macOS.
Minta aplikasi dalam browser untuk memberi tahu pengguna bahwa notifikasi dinonaktifkan di Setelan Sistem Mac dengan tombol untuk membukanya.
Perintah dalam browser yang memandu pengguna ke Setelan Sistem macOS.

Dampak bagi developer: Penghentian requireInteraction di macOS

Di macOS, apakah notifikasi tetap berada di layar hingga pengguna menutupnya ("Persisten") atau menghilang secara otomatis ("Sementara") adalah setelan per aplikasi yang dikontrol pengguna di Setelan Sistem macOS.

Karena desain OS ini, Chrome tidak akan lagi mematuhi opsi requireInteraction di Notification API di macOS saat atribusi aktif.

Artinya bagi kode Anda:

Jika aplikasi Anda mengandalkan requireInteraction: true untuk menjaga notifikasi penting tetap berada di layar, hal ini tidak akan lagi dijamin di macOS. Sebagai gantinya, Anda harus:

  • Mendesain aplikasi dengan asumsi notifikasi mungkin bersifat sementara (Sementara).
  • Mendorong pengguna yang memerlukan notifikasi persisten untuk mengonfigurasi gaya pemberitahuan notifikasi PWA's sebagai "Persisten" di System Settings > Notifications > [Your PWA].
Setelan Sistem macOS, yang menandai setelan Gaya pemberitahuan yang menampilkan Sementara dan Persisten.
Setelan Sistem macOS untuk PWA yang menampilkan setelan Gaya pemberitahuan (Sementara versus Persisten).

Dampak bagi developer: App Badging API memerlukan izin notifikasi

The App Badging API memungkinkan aplikasi web menetapkan badge pada ikon aplikasinya (misalnya, menampilkan jumlah pesan yang belum dibaca). Di macOS, badge ikon aplikasi secara teknis terikat dengan setelan notifikasi aplikasi. Karena PWA kini memiliki identitas notifikasi native sendiri:

  • Izin diperlukan: PWA harus mengaktifkan izin notifikasi tingkat OS agar badge muncul di ikon Dock. Hal ini selaras dengan standar platform macOS dan sesuai dengan cara Safari menangani Badging API untuk aplikasi web.
  • Kegagalan senyap: Jika pengguna menonaktifkan "Badge app icon" di System Settings > Notifications > [Your PWA], atau menolak izin notifikasi sepenuhnya, panggilan ke navigator.setAppBadge() akan tetap berhasil di JavaScript (tanpa menampilkan error), tetapi badge tidak akan ditampilkan di Dock. Jika aplikasi Anda mengandalkan badge, pastikan untuk meminta izin notifikasi agar badge dapat ditampilkan.

Dampak bagi administrasi perusahaan

Untuk administrator perusahaan yang mengelola perangkat macOS dan ingin memberikan izin notifikasi terlebih dahulu:

  1. Kebijakan Chrome: Anda tetap harus mengonfigurasi kebijakan Chrome (NotificationsAllowedForUrls) untuk memberikan izin ke origin PWA.
  2. Kebijakan macOS: Selain itu, Anda kini harus men-deploy Profil Konfigurasi macOS (MDM) untuk memberikan izin notifikasi terlebih dahulu ke ID paket PWA (App Shim).

Tanpa kedua kebijakan tersebut, pengguna akan tetap diminta izin di tingkat OS.

Praktik terbaik untuk developer

  1. Periksa status izin: Selalu periksa Notification.permission sebelum mengirim notifikasi.
  2. Perintah kontekstual: Jika Anda mendeteksi bahwa izin diberikan di tingkat web , tetapi notifikasi tidak muncul (yang dapat terjadi jika izin tingkat OS dicabut), arahkan pengguna ke Setelan Sistem macOS.
  3. Bersiap untuk notifikasi sementara: Jangan mengandalkan requireInteraction untuk alur pengguna penting di macOS.