Tanya Jawab Umum
Tentang pengenal pengguna unik user_str
Saat inisialisasi, developer harus memberikan string unik (
user_str) untuk menghasilkan kode pengenal unik pengguna (UID). UID ini digunakan untuk identifikasi push notification dan bersifat independen dari perangkat pengguna.Jika seorang pengguna berlangganan di beberapa browser atau perangkat menggunakan
user_stryang sama, sistem akan mengidentifikasi mereka sebagai pengguna yang sama. Informasi langganan yang baru akan menggantikan informasi lama, sehingga pengguna menerima pesan di perangkat/browser yang digunakan untuk langganan terbaru. Hal ini mencegah pengguna yang sama menerima pesan duplikat di beberapa perangkat/browser. Backend sistem hanya menyimpan informasi langganan terbaru untuk setiap UID.Pengguna dapat berhenti berlangganan kapan saja, dan SDK kami menyediakan antarmuka yang sesuai untuk mengimplementasikan fitur ini. Operasi berhenti berlangganan akan melepaskan kaitan UID dari informasi langganan, tetapi tidak akan mengubah pengaturan izin notifikasi browser.
Secara teori,
user_strharus berkorespondensi satu banding satu dengan akun pengguna. Dalam beberapa skenario, pengguna mungkin berada dalam mode tamu. Dalam hal ini, developer perlu membuatuser_stryang unik berdasarkan situasi sebenarnya. SDK kami tidak menangani langkah ini secara otomatis untuk menghindari data statistik yang tidak akurat akibat penangananuser_stryang tidak tepat.
Untuk pengguna dalam mode tamu, developer dapat menggunakan contoh fungsi berikut untuk membuat
user_strberdasarkan keunikan browser pengguna. Namun, harap diperhatikan bahwa pendekatan ini dapat menyebabkanuser_strbaru dibuat jika pengguna mengganti browser, mengganti perangkat, atau menghapus cache.
Contoh fungsifunction randomUid() { const keyStr = 'mtWebPushRandomUid'; let uid = window.localStorage.getItem(keyStr); if (!uid) { uid = new Date().getTime().toString(36) + Math.floor(Math.random() * 10000000).toString(36); window.localStorage.setItem(keyStr, uid); } return uid; } var user_str = randomUid();function randomUid() { const keyStr = 'mtWebPushRandomUid'; let uid = window.localStorage.getItem(keyStr); if (!uid) { uid = new Date().getTime().toString(36) + Math.floor(Math.random() * 10000000).toString(36); window.localStorage.setItem(keyStr, uid); } return uid; } var user_str = randomUid();Tampilkan blok kode ini di jendela mengambang
Platform mana yang mendukung Web Push?
Dukungan browser berdasarkan sistem operasi
| Browser | Windows PC | macOS | Android | iOS (iPhone, iPad) |
|---|---|---|---|---|
| Chrome | Ya | Ya | Ya | Tidak |
| Firefox | Ya | Ya | Ya | Tidak |
| Safari | Tidak | Ya | Tidak | Ya |
| Microsoft Edge | Ya | Ya | Tidak | Tidak |
| Opera | Ya | Ya | Ya | Tidak |
Catatan 1: Microsoft Edge (diperbarui pada 2019), Opera, Samsung Internet, Yandex, dan UC Browser semuanya adalah browser berbasis Chromium dan akan ditandai sebagai Chrome di EngageLab.
Catatan 2: Internet Explorer tidak lagi menerima pembaruan fitur. Microsoft telah mengalihkan pengembangan browser ke platform Edge.
Catatan 3: Mode samaran, mode penjelajahan privat, dan mode browser tamu tidak mendukung web push notification.
Dukungan berdasarkan versi browser
| Browser | Windows PC | macOS | Android | iOS (iPhone, iPad) |
|---|---|---|---|---|
| Chrome | Chrome 42+ | Chrome 42+ | Chrome 105+ | / |
| Firefox | Firefox v44+ | Firefox v44+ | Firefox v104+ | / |
| Apple Safari | / | Safari 11.1+ | / | Safari 10+ di macOS Safari 16.4+ di iOS dan iPadOS 16.4+ |
| Opera | Opera v29+ | Opera v29+ | Opera Mobile v64+ | / |
| Microsoft Edge | Edge v17+ | Edge v17+ | / | / |
Masalah Web Push notification yang terkait dengan browser Safari
Web Push notification di Safari didukung pada macOS (11.1+) dan iOS/iPadOS 16.4+.
Fitur apa saja yang didukung oleh push Safari?
| Fitur | macOS (15-) | macOS (16+) | iOS/iPadOS 16.4+ |
|---|---|---|---|
| Gambar | Tidak | Tidak | Tidak |
| Tombol aksi | Tidak | Tidak | Tidak |
| Launch URL | Ya | Ya | Ya |
| Ikon situs kustom | Ya | Tidak | Ya |
Bagaimana pengguna di iOS dan iPadOS dapat menerima Safari web push notification?
1. Bagaimana developer harus mengonfigurasi pengaturan agar pengguna dapat menerima web notification di iOS/iPadOS 16.4+?
Web Push notification dapat digunakan di iOS/iPadOS 16.4+. Namun, situs web harus memiliki file manifest yang benar dan properti yang dikonfigurasi dengan tepat agar notification dapat berfungsi dengan baik. Tambahkan kode berikut ke HTML pada halaman integrasi yang sesuai: <link rel="manifest" href="manifest.json" />
Sertakan file manifest:
{
"$schema": "https://json.schemastore.org/web-manifest-combined.json",
"display": "standalone",
"start_url": "/webpush/index.html",
"name": "Engagelab WebPush Example",
"short_name": "Engagelab",
"icons": [
{
"src": "/icon-large-cb438cac.png",
"type": "image/png",
"sizes": "1024x1024"
}
]
}
2. Agar pengguna dapat berlangganan dan menerima mobile Safari Web Push notification, mereka harus menambahkan web app ke Home Screen
Mengirim mobile Safari Web Push notification (untuk iOS dan iPadOS 16.4+) mengharuskan penerima notifikasi melakukan hal berikut:
- Kunjungi situs web Anda di browser Safari pada perangkat Apple seluler yang menjalankan 16.4+.
- Ketuk tombol Share di Safari pada perangkat seluler.
- Ketuk opsi "Add to Home Screen".
- Simpan app di perangkat.
- Buka app dari Home Screen.
- Berlangganan notifikasi (sebelum prompt izin native muncul, mereka harus mengetuk tombol subscribe). Langkah-langkah ini diperlukan agar dapat menerima mobile Web Push notification.
Karena alur interaksi ini relatif kompleks bagi pengguna akhir, Anda perlu membantu mereka memahami manfaat berlangganan notifikasi.
3. Tambahkan banner notification di situs web Anda untuk memandu pengguna ke "Add to Home Screen"
Anda dapat menambahkan banner ke situs web Anda untuk memberi tahu pengguna akhir tentang manfaat mobile Web Push notification dan memandu mereka tentang cara berlangganan.
Kami merekomendasikan untuk menambahkan banner ke situs web Anda yang muncul di perangkat Apple seluler dan memandu pengunjung untuk mengetuk tombol Share serta opsi "Add to Home Screen".
Ada juga proyek open-source populer yang dapat membantu Anda memberikan instruksi ini kepada pengguna:
Contoh tautan GitHub banner bawah: https://github.com/rajatsehgal/add-to-home-screen
Apakah pengguna dapat menerima notifikasi jika browser ditutup?
- Saat menggunakan channel EngageLab, notifikasi hanya dapat diterima ketika situs web terbuka.
- Saat menggunakan channel sistem, notifikasi dapat diterima bahkan ketika browser ditutup, meskipun perilakunya berbeda di tiap platform. Lihat tabel berikut untuk detailnya:
| Browser | Windows | macOS |
|---|---|---|
| Chrome | Ya, proses browser harus tetap berjalan di latar belakang | Ya, proses browser harus tetap berjalan di latar belakang |
| Firefox | Ya, proses browser harus tetap berjalan di latar belakang | Ya, proses browser harus tetap berjalan di latar belakang |
| Safari | / | Ya |
| Opera | Ya, proses browser harus tetap berjalan di latar belakang | Ya, proses browser harus tetap berjalan di latar belakang |
| Microsoft Edge | Ya, proses browser harus tetap berjalan di latar belakang | Ya, proses browser harus tetap berjalan di latar belakang |
Di Windows, jika semua jendela ditutup tetapi browser masih berjalan di latar belakang, notifikasi sistem masih dapat diterima. Jika proses browser telah ditutup, notifikasi sistem tidak akan diterima.
Di macOS, meskipun semua jendela ditutup, sebagian besar proses browser tetap berjalan di latar belakang, sehingga notifikasi sistem masih dapat diterima. Jika proses browser dihentikan secara paksa, notifikasi sistem tidak akan diterima. Safari tidak perlu berjalan untuk menerima notifikasi, karena notifikasi dikirim langsung ke sistem operasi. Pengguna perlu mendaftarkan notifikasi Safari terlebih dahulu, dan setelah itu mereka tetap dapat menerima notifikasi meskipun Safari ditutup sepenuhnya.
Masalah yang terkait dengan prompt izin notifikasi
Setelah pengguna menutup prompt web push, kapan prompt akan muncul lagi?
Jika pengguna mengklik "Block" (Chrome), "Don't Allow" (Safari), atau "Never Allow" (Firefox) pada prompt izin native, situs web tidak akan dapat memunculkannya lagi kecuali pengguna melakukan beberapa langkah di pengaturan browser untuk berlangganan atau mengatur ulang izin. Inilah sebabnya penggunaan prompt EngageLab (Buka pengaturan) direkomendasikan.
Prompt izin native
Langganan Web Push memerlukan prompt izin browser native, dan prompt izin native tidak dapat disesuaikan. Prompt ini menggunakan bahasa yang ditetapkan di pengaturan browser pengguna. Hanya situs web HTTPS yang dapat menampilkan prompt browser native.
Chrome: Anda memiliki 3 kesempatan untuk membuat pengguna berlangganan. Setelah pengguna mengklik "X" pada prompt izin native untuk ketiga kalinya, pengguna tidak akan menerima prompt lagi selama satu minggu. Untuk informasi lebih lanjut tentang fitur Chrome ini, lihat di sini.
Firefox: Mulai dari Firefox 70, setelah pengguna mengklik tombol tutup, mereka perlu mengklik ikon notifikasi kecil di browser untuk menerima prompt lagi. Selain itu, untuk Firefox 72+, prompt browser native telah diblokir agar tidak ditampilkan. Untuk detailnya, lihat di sini.
Safari: Mirip dengan Firefox, Safari menambahkan UI yang lebih senyap bagi pengguna yang biasanya menolak izin dan secara otomatis memprompt situs web yang telah ditolak izin push-nya, Safari 12.1+
Soft prompt EngageLab
Karena popup native hanya memberikan satu kesempatan, jika pengguna menolaknya, situs web tidak akan dapat meminta otorisasi dari pengguna lagi. Oleh karena itu, EngageLab merekomendasikan penggunaan "soft prompt" untuk memperoleh otorisasi pengguna:
Jika pengguna mengklik "Allow" atau "Cancel" pada prompt EngageLab (Buka pengaturan) dan masih belum berlangganan melalui popup prompt native, prompt EngageLab dapat muncul lagi.
- Setelah pengguna mengklik "Allow" pada prompt EngageLab, popup native akan dipicu. Namun, jika pengguna mengklik "Cancel" pada prompt native saat itu, ketika pengguna kembali mengunjungi situs web, prompt EngageLab akan tetap muncul dan menanyakan apakah mereka ingin mengizinkan notifikasi dari situs web.
- Setelah pengguna mengklik "Allow" pada prompt EngageLab, popup native akan dipicu. Jika pengguna mengklik "Allow" pada prompt native saat itu, pengguna mengotorisasi situs web untuk web notification; jika pengguna mengklik "Deny" pada prompt native saat itu, situs web tidak akan lagi dapat memperoleh otorisasi dari pengguna tersebut.
- Jika pengguna mengklik "Cancel" pada prompt EngageLab, dapat dipahami bahwa pengguna saat ini tidak ingin menerima notifikasi dari situs web. Karena bertanya pada saat ini kemungkinan besar akan ditolak, kami tidak akan memicu popup native, dan pada kunjungan berikutnya kami dapat bertanya lagi melalui prompt EngageLab apakah mereka ingin menerima notifikasi.
Pemecahan masalah ketika notifikasi tidak diterima
1. Periksa apakah izin notifikasi diaktifkan untuk halaman web

2. Periksa apakah izin notifikasi diaktifkan untuk aplikasi browser
Pengaturan notifikasi Windows:
- Nonaktifkan Focus Assist. Untuk detailnya, lihat dokumentasi resmi Microsoft.
- Periksa Settings > Notifications & actions > Get notifications from apps and other senders. Pastikan situs dan browser Anda juga diaktifkan. Untuk detail lebih lanjut, lihat dokumentasi resmi Microsoft.


Pengaturan notifikasi macOS:
- Di System Preferences > Notifications > Chrome atau browser yang dipilih, pastikan Allow Notifications diaktifkan.
- Di System Preferences > Notifications > Focus > Do Not Disturb and Sleep, pastikan mode ini tidak diaktifkan atau Anda berada dalam periode waktu notifikasi yang diizinkan.
- macOS juga memiliki pengaturan notifikasi sementara Do Not Disturb di menu kanan atas; gulir ke atas untuk melihatnya.

3. Channel vendor browser mungkin tidak stabil, jadi beralihlah ke prioritas pengiriman melalui channel EngageLab

{
"from": "web_push",
"to": {
"registration_id": [
"xxx"
]
},
"body": {
"platform": "web",
"notification": {
"web": {
"title": "web_push",
"alert": "Hi,MTPush !",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
},
"options": {
"time_to_live": 30,
"third_party_channel": {
"w3push": {
"distribution": "mtpush"
}
}
},
"request_id": "12345678",
"custom_args": "business info"
}
}
Browser Safari tidak dapat memunculkan notifikasi?
Langkah 1: Periksa izin browser Safari dan pastikan sakelar izinkan diaktifkan. Kondisi normal ditunjukkan di bawah ini:

Langkah 2: Klik untuk memeriksa status layanan push dan izin notifikasi browser. Kondisi normal ditunjukkan di bawah ini:

Langkah 3: Di Safari, klik Preferences.

Klik Websites > Notifications, lalu periksa apakah situs diizinkan di Notification Center. Kondisi normal ditunjukkan di bawah ini:

Catatan khusus:
- Mengklik Stop Push akan mencegah penerimaan pesan JPush, dan halaman perlu dimuat ulang.
- Jika beberapa halaman HTML dikonfigurasi di bawah satu domain, jangan hapus izin situs web dari Notification Center. Setelah dihapus, semua halaman HTML akan berhenti menerima notifikasi (pengguna perlu menemukan halaman utama dan memperoleh izin notifikasi situs web lagi).
Jika pengguna yang sama menggunakan beberapa browser secara bersamaan dan satu pesan dikirim ke pengguna tersebut, bagaimana pesan akan ditampilkan di perangkat pengguna?
Jika strategi pengiriman yang dipilih adalah memprioritaskan channel sistem, maka pesan ini hanya akan dikirim melalui channel vendor browser yang paling baru digunakan oleh pengguna. Jika pengiriman dipilih hanya melalui channel JPush, maka beberapa pesan akan dikirim.
Jika pengguna menghapus cache dan cookies browser, apakah mereka masih dapat menerima Web Push dari situs web ini?
Saat pengguna online, channel JPush masih dapat menerima push.
Untuk channel vendor browser, saat pengguna menghapus cookies dan cache browser, mereka akan berhenti berlangganan notifikasi. Hal ini karena data pelanggan disimpan di penyimpanan IndexedDB browser. Menghapus data ini menyebabkan browser "melupakan" pelanggan. Namun, menghapus data ini tidak menghapus izin yang telah diberikan pengguna untuk menerima notifikasi di browser tersebut. Pada titik ini, inisialisasi SDK diperlukan agar pengguna dapat otomatis berlangganan kembali saat mereka kembali ke situs web.
Namun, jika pengguna mengubah izin notifikasi browser menjadi "Ask" atau "Block", mereka tidak akan otomatis berlangganan kembali.
Jika pengguna menghapus notifikasi dari pengaturan notifikasi browser, mereka juga tidak akan otomatis berlangganan kembali.
Cara menghapus notifikasi di setiap browser:
Chrome:
chrome://settings/content/notifications

Firefox:
about:preferences#privacy > Permissions > Notifications

Safari: Preferences > Websites > Notifications > Remove

Saat pengguna berlangganan kembali, mereka akan mendapatkan record Registration ID baru. Anda dapat menggunakan window.MTpushInterface.getRegistrationID() untuk mendapatkan RID.
Jika beberapa pesan dikirim ke pengguna yang sama pada saat yang sama, apakah semua pesan akan ditampilkan?
Mekanisme tampilan pesan berbeda-beda menurut channel push:
Channel EngageLab: Tidak ada mekanisme override. Jika beberapa pesan dikirim ke pengguna yang sama pada saat yang sama, beberapa pesan akan ditampilkan kepada pengguna secara bersamaan. Notification Center akan menyimpan beberapa pesan; kecuali pesan terbaru, yang lainnya akan diciutkan.
Safari: Tidak ada mekanisme override. Jika beberapa pesan dikirim ke pengguna yang sama pada saat yang sama, beberapa pesan akan ditampilkan kepada pengguna secara bersamaan. Notification Center akan menyimpan beberapa pesan; kecuali pesan terbaru, yang lainnya akan diciutkan.
Chrome: Memiliki mekanisme override. Jika beberapa pesan dikirim ke pengguna yang sama pada saat yang sama, setiap notifikasi akan digantikan oleh notifikasi yang diperbarui, dan hanya pesan terakhir yang dikirim yang akan ditampilkan.
Edge: Memiliki mekanisme override. Jika beberapa pesan dikirim ke pengguna yang sama pada saat yang sama, setiap notifikasi akan digantikan oleh notifikasi yang diperbarui, dan hanya pesan terakhir yang dikirim yang akan ditampilkan.
Firefox: Memiliki mekanisme override. Jika beberapa pesan dikirim ke pengguna yang sama pada saat yang sama, setiap notifikasi akan digantikan oleh notifikasi yang diperbarui, dan hanya pesan terakhir yang dikirim yang akan ditampilkan.
Apakah EngageLab WebPush mendukung perubahan domain?
Browser telah mengimplementasikan Web Push dengan cara yang mengikat pelanggan ke origin tertentu (nama domain/URL situs web).
Demi alasan keamanan dan karena kebijakan same-origin browser, browser tidak mengizinkan pelanggan dipindahkan ke origin lain. Ini bukan batasan EngageLab. Jika ada penyedia yang mengklaim dapat memindahkan pelanggan dari satu situs web ke situs web lain, pastikan untuk mengonfirmasi bahwa yang mereka langgani memang benar situs web Anda.
Jika Anda telah mengubah situs web Anda, solusi terbaik adalah menyiapkan app WebPush baru untuk situs web baru dan meminta pengguna Anda berlangganan ke situs web di bawah app baru ini. Anda tidak dapat mengimpor pelanggan dari satu origin ke origin lainnya.
Anda dapat terus mengirim push notification ke pelanggan situs web lama (app WebPush lama), tetapi pengguna Anda perlu berlangganan kembali ke situs web baru agar dapat menerima push dari domain baru. Langkah migrasi yang direkomendasikan adalah sebagai berikut:
- Siapkan app WebPush baru untuk domain situs baru.
- Lanjutkan mengirim push dari app WebPush lama menggunakan domain situs lama. Di "Launch URL" notifikasi, gunakan domain situs baru.
- Setelah 2 minggu hingga 2 bulan (tergantung pada berapa banyak notifikasi yang Anda kirim setiap hari dan berapa banyak pelanggan yang Anda dapatkan di situs web baru), Anda dapat berhenti menggunakan app WebPush lama dan hanya menggunakan app WebPush baru.
- Jika Anda mengirim pesan yang sama dari app WebPush lama dan app WebPush baru, pelanggan di keduanya akan menerima pesan duplikat. Inilah sebabnya kami merekomendasikan untuk mengikuti linimasa ini.
- Anda dapat mengirim beberapa pesan seperti "Kami telah pindah. Klik di sini untuk mengunjungi situs web baru kami dan berlangganan kembali agar tetap mendapatkan pembaruan." Ini akan membantu mengingatkan pengguna bahwa mereka mungkin tidak lagi menerima push dari situs web Anda jika mereka tidak kembali dan berlangganan ulang. Direkomendasikan untuk mengirim notifikasi semacam ini pada awal migrasi dan bersama pesan terakhir yang dikirim dari app tersebut.
- Sayangnya, setiap situs web dan kelompok pengguna berbeda. Harap bersiap untuk kehilangan pelanggan dalam jangka pendek.
Saat melaksanakan langkah migrasi di atas, pastikan untuk memperhatikan pengalaman pengguna agar tidak menimbulkan ketidaknyamanan bagi pengguna.
Apakah EngageLab WebPush mendukung push PWA?
1. Apa itu PWA?
Push PWA mengacu pada proses penggunaan teknologi Web Push di Progressive Web Apps (PWA) untuk mengirim notifikasi kepada pengguna. PWA adalah aplikasi yang dibangun menggunakan teknologi web yang menyediakan fungsi dan pengalaman pengguna yang mirip dengan aplikasi native, sekaligus dapat diakses melalui browser tanpa instalasi.
Push PWA diimplementasikan melalui teknologi Web Push yang disediakan oleh browser. Teknologi Web Push memungkinkan aplikasi web mengirim push notification seperti aplikasi native, bahkan ketika aplikasi tidak aktif atau ditutup sepenuhnya.
Tidak seperti aplikasi tradisional, PWA tidak perlu diunduh dan diinstal dari app store dan dapat diakses langsung melalui URL di browser. Pada saat yang sama, push PWA dapat memberikan alert pesan tepat waktu kepada pengguna, sehingga meningkatkan pengalaman dan keterlibatan pengguna.
Singkatnya, push PWA adalah metode untuk menggunakan teknologi Web Push guna mengirim notifikasi kepada pengguna Progressive Web Apps, meningkatkan keterlibatan dan interaksi pengguna sambil memberikan pengalaman yang lebih mendekati aplikasi native pada aplikasi web.
2. Apakah EngageLab WebPush mendukung push PWA?
Layanan EngageLab WebPush mendukung push PWA. Anda perlu menggunakan Web SDK yang disediakan oleh EngageLab WebPush untuk mengintegrasikan fungsi Web Push ke aplikasi PWA Anda, dan mengikuti contoh kode dalam dokumentasi untuk mendaftarkan Service Worker serta menginisialisasi fungsi Web Push. Setelah integrasi selesai, Anda dapat menggunakan EngageLab WebPush API untuk mengirim push notification kepada pengguna aplikasi PWA Anda.
Catatan: Ada dua syarat yang diperlukan agar Web SDK mendukung PWA:
- Aplikasi berjalan di browser, dan browser mendukung notifikasi W3C.
- Ada nama domain tertentu, dan menggunakan protokol HTTPS.
3. Apakah service worker PWA akan bertentangan dengan service worker EngageLab WebPush?
Service worker dari PWA (Progressive Web App) dan service worker dari EngageLab WebPush mungkin bertentangan, karena keduanya berjalan di latar belakang browser, dan untuk origin yang sama, biasanya hanya satu service worker yang dapat aktif pada satu waktu.
Service worker adalah skrip yang diinstal oleh situs web di browser dan dapat mendukung pengalaman offline, push messaging, sinkronisasi latar belakang, dan banyak lagi. Karena service worker mengontrol halaman dalam cakupannya, beberapa service worker tidak dapat mengontrol halaman secara bersamaan dalam cakupan yang sama.
Jika Anda mencoba mendaftarkan beberapa service worker di bawah aplikasi/domain yang sama, service worker yang didaftarkan belakangan dapat menggantikan yang sebelumnya, atau konflik dapat terjadi ketika cakupan kedua service worker saling tumpang tindih. Konflik ini dapat menyebabkan perilaku yang tidak terduga, seperti push messaging hanya berfungsi dengan baik melalui satu channel.
Untuk menghindari konflik ini, Anda dapat:
1. Pastikan Anda hanya menggunakan satu service worker di aplikasi Anda. Jika fungsi Web Push yang disediakan oleh EngageLab dan fungsi PWA Anda dapat diimplementasikan melalui service worker yang sama, sebaiknya gabungkan keduanya ke dalam satu skrip service worker.
2. Jika Anda perlu menggunakan dua service worker terpisah, Anda harus memastikan bahwa cakupan keduanya tidak saling tumpang tindih. Hal ini dapat dicapai dengan menentukan path scope yang berbeda saat mendaftarkan service worker.
Sebelum implementasi, direkomendasikan untuk membaca dokumentasi terkait dengan saksama dan melakukan pengujian yang memadai di lingkungan development maupun production untuk memastikan bahwa service worker dapat berjalan berdampingan tanpa saling mengganggu.
4. Perbedaan perilaku popup izin notifikasi app PWA di perangkat iOS dan Android
Batasan sistem iOS (kebijakan Safari/WebKit):
· Demi privasi, iOS memerlukan gestur pengguna (seperti klik) sebelum popup izin dapat dipicu.
· Ini adalah kebijakan WebKit yang wajib dan berlaku untuk semua PWA serta aplikasi web.
· Setelah PWA diinstal untuk pertama kali, interaksi pengguna tetap diperlukan sebelum meminta izin.Karakteristik sistem Android:
· Chrome/WebView mengizinkan izin diminta secara otomatis saat halaman dimuat.
· Mengikuti model permintaan izin yang lebih longgar.
· Beberapa versi Android bahkan mendukung prompt izin progresif.
Mengapa registration ID bisa sama di browser yang berbeda?
Jawaban: Untuk nama domain terintegrasi yang sama yang dikonfigurasi untuk satu aplikasi dan userStr pengguna yang sama, RID yang sama akan dihasilkan, terlepas dari apakah browsernya sama atau tidak.
- Untuk memeriksa apakah itu pengguna yang sama, gunakan metode berikut: lihat source code HTML dan temukan fungsi inisialisasi.
// Please register event listeners before initialization
// Callback when the JPush channel is disconnected
MTpushInterface.mtPush.onDisconnect(function () {
console.log("onDisconnect");
});
// Receive push messages (web push, browser vendor channel)
MTpushInterface.onMsgReceive((msgData) => {
// msgData data structure {data:{xxx},type:0} type:0 is the JPush channel, 1 is the system channel
console.log("Received push message:", msgData);
});
// Push initialization
MTpushInterface.init({
appkey: "", // Required. See above for how to get application information
user_str: visitorId, // Required. User identifier used to identify the user
fail(err) {
console.log("Failed to create online push", err);
},
success(data) {
console.log("Online push created successfully", data);
},
webPushcallback(code, tip) {
console.log("Status code and prompt received by the user", code, tip);
},
swUrl: '', // Default "/sw.min." + sdkEnv.version + ".js". This configuration item is the service worker file address. The domain name must be the current domain name, and the path determines the service worker scope.
canGetInfo(data) {
// At this point, you can get some notification configuration data, and after this callback function you can get the RegId
console.log(data); // Related configuration information
console.log("Get RegId", MTpushInterface.getRegistrationID());
},
custom: (fuc) => {
// When using a custom prompt configuration, you need to manually call fuc() to request notification permission.
// The function to request notification permission can only be obtained through custom.
// Calling fuc() will request notification permission
},
});
Jika Anda mengalami masalah selama penggunaan yang tidak tercakup dalam dokumen ini, jangan ragu untuk menghubungi kami kapan saja. Kami akan memberikan dukungan dan jawaban profesional kepada Anda.










