Bagaimana untuk melaksanakan pemberitahuan push di HTML5?
Jul 10, 2025 pm 12:54 PMYa, laman web HTML5 boleh melaksanakan pemberitahuan push melalui API web moden, tetapi mereka memerlukan kerjasama dari JavaScript, pekerja perkhidmatan dan pelayan backend. Langkah -langkah khusus adalah seperti berikut: 1. Periksa status sokongan penyemak imbas dan pastikan terdapat pekerja perkhidmatan dan pushmanager; 2. Daftar pekerja perkhidmatan untuk menguruskan acara push; 3. Permintaan kebenaran pengguna melalui pemberitahuan.requestPermission (); 4. Gunakan perpustakaan Web-Push untuk menghasilkan kunci Vapid untuk pengenalan identiti; 5. Selepas kebenaran pengguna, gunakan kaedah pushmanager. 6. Dengarkan acara push di pekerja perkhidmatan dan hubungi paparan untuk memaparkan pemberitahuan; 7. Backend menggunakan perpustakaan web-push dan kekunci VAPID untuk menghantar mesej push kepada pengguna.
Pemberitahuan push di HTML5 bukan sesuatu yang anda boleh melaksanakan secara langsung dengan hanya HTML - ia memerlukan gabungan JavaScript, pekerja perkhidmatan, dan pelayan backend. Tetapi ya, anda boleh mengaktifkan pemberitahuan push di laman web menggunakan API web moden.

Inilah caranya untuk melangkah langkah demi langkah.
1. Periksa sokongan penyemak imbas
Sebelum menyelam ke dalam kod, pastikan pemberitahuan sokongan penyemak imbas pengguna. Kebanyakan pelayar moden seperti Chrome, Firefox, Edge, dan Safari menyokong mereka, tetapi beberapa pelayar mudah alih (terutamanya pada iOS) mempunyai sokongan terhad atau tidak.

Anda boleh menyemak sokongan seperti ini:
jika ('ServiceWorker' di Navigator && 'PushManager' di Window) { // disokong! } else { Console.log ('Pemberitahuan push tidak disokong dalam penyemak imbas ini.'); }
Perlu diingat:

- Safari Mempunyai Cara Mengendalikan Tekan Sendiri Melalui Perkhidmatan Pemberitahuan Push Apple (APNS)
- IOS Safari hanya membenarkan pemberitahuan push untuk aplikasi web yang dipasang (ditambahkan ke skrin utama)
2. Daftar Pekerja Perkhidmatan
Pemberitahuan push bergantung kepada pekerja perkhidmatan - skrip latar belakang yang menguruskan permintaan rangkaian dan bertindak sebagai proksi antara aplikasi dan rangkaian anda.
Buat fail yang dipanggil sw.js
dan daftarkannya dalam fail JavaScript utama anda:
Navigator.ServiceWorker.Register ('/sw.js') .tua (fungsi (pendaftaran) { Console.log ('Pekerja perkhidmatan yang berdaftar dengan skop:', pendaftaran.scope); }) .catch (fungsi (err) { Console.log ('Pendaftaran pekerja perkhidmatan gagal:', err); });
Di dalam sw.js
, biarkan ia kosong buat masa ini - kami akan menggunakannya kemudian untuk mengendalikan acara push.
3. Permintaan kebenaran daripada pengguna
Sebelum menghantar sebarang pemberitahuan, anda mesti meminta pengguna untuk kebenaran. Ini dilakukan dengan menggunakan kaedah Notification.requestPermission()
.
Pemberitahuan.requestPermission (). Kemudian (fungsi (hasil) { jika (hasil === 'diberikan') { Console.log ('Kebenaran diberikan!'); // Sekarang langgan untuk menolak pemberitahuan } else { Console.log ('Kebenaran ditolak atau ditolak.'); } });
?? PENTING: Anda tidak boleh mencetuskan auto ini-biarkan pengguna memulakannya dengan klik butang atau tindakan yang serupa. Jika tidak, mereka boleh menghalangnya daripada kebiasaan.
4. Menjana kunci vapid
Untuk menggunakan pemberitahuan push, anda memerlukan satu set kekunci yang dikenali sebagai VAPID (Pengenalan Pelayan Aplikasi Sukarela). Ini digunakan untuk mengenal pasti aplikasi anda apabila pelanggan.
Anda boleh menjana kunci ini menggunakan perpustakaan seperti web-push di node.js:
NPM Pasang Web-PUSH
Kemudian jalankan:
const WebPush = memerlukan ('web-push'); const vacuumKeys = WebPush.GenerateVapidKeys (); Console.log (VapidKeys);
Simpan kunci awam dan peribadi - anda akan menggunakan kunci awam apabila melanggan pengguna dan yang peribadi di pelayan anda.
5. Langgan pengguna
Sebaik sahaja pekerja perkhidmatan didaftarkan dan kebenaran diberikan, anda boleh melanggan pengguna untuk menolak pemberitahuan:
Navigator.ServiceWorker.ready.THEN (fungsi (pendaftaran) { Pulangan Pendaftaran.PushManager.Subscribe ({ USERVISIBLEOnly: Benar, ApplicationserVerKey: urlBase64TouInt8Array (publicVapidKey) }); });
Anda memerlukan fungsi penolong ini untuk menukar kunci awam yang dikodkan oleh Base64:
fungsi urlbase64touint8Array (base64string) { const padding = '='. Ulang ((4 - base64string.length % 4) % 4); const base64 = (base64string padding) .Replace (/-/g, '') .replace (/_/g, '/'); const rawData = window.atob (base64); const outputArray = new uint8Array (RawData.Length); untuk (biarkan i = 0; i <rawdata.length; i) { outputArray [i] = RawData.CharCodeat (i); } kembali outputArray; }
Selepas langganan, hantar titik akhir dan kunci ke backend anda supaya anda boleh menghantar mesej yang disasarkan.
6. Mengendalikan acara push di Pekerja Perkhidmatan
Sekarang bahawa pengguna dilanggan, pekerja perkhidmatan anda perlu mengendalikan mesej push masuk.
Tambahkan ini ke sw.js
anda:
self.addeventListener ('push', fungsi (acara) { const data = event.data.json (); self.registration.shownotification (data.title, { badan: data.body, ikon: data.icon || '/icon.png' }); });
Ini mendengarkan untuk peristiwa push dan memaparkan pemberitahuan berdasarkan muatan.
7. Hantar mesej tolak dari backend anda
Akhirnya, untuk mencetuskan pemberitahuan, anda perlu menghantar permintaan pos ke titik akhir yang disediakan semasa langganan, menggunakan kunci vapid peribadi dan butiran langganan pengguna.
Menggunakan perpustakaan web-push
sekali lagi:
const WebPush = memerlukan ('web-push'); WebPush.SetVapidDetails ( 'Mailto: you@example.com', publicvapidkey, Privatevapidkey ); WebPush.SendNotification (langganan, json.stringify ({ Tajuk: 'Hello!', Badan: 'Ini adalah pemberitahuan push.', Ikon: '/icon.png' }));
Di mana subscription
adalah objek yang anda simpan lebih awal dari pushManager.subscribe
.
Itu pada dasarnya. Ia kelihatan rumit pada mulanya, tetapi apabila anda memecahkannya ke langkah -langkah, melaksanakan pemberitahuan push di HTML5 menjadi terkawal.
Ia tidak rumit - hanya melibatkan beberapa bahagian bergerak yang bekerja bersama -sama.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemberitahuan push di HTML5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Htm html5isbetTorcontrolandcustomizizationationy ,y, wyualyyyoutubeisbetterforeaseandperformance.1) html5allowsfortorStoreDusexperienceButrequireSManagingCodecSandcompatibility.2) youtubeofsssimplyVeBedwiPhileMsHiMsMarmanceMsHiMsHiMShipMarmanceShipeterPeterfambambangkangkangkangkangkangkik

InputType = "Range" digunakan untuk membuat kawalan slider, yang membolehkan pengguna memilih nilai dari julat yang telah ditetapkan. 1. Ia terutamanya sesuai untuk adegan di mana nilai perlu dipilih secara intuitif, seperti melaraskan jumlah, kecerahan atau sistem pemarkahan; 2. Struktur Asas termasuk Atribut Min, Max dan Langkah, yang menetapkan nilai minimum, nilai maksimum dan saiz langkah masing -masing; 3. Nilai ini boleh diperoleh dan digunakan dalam masa nyata melalui JavaScript untuk meningkatkan pengalaman interaktif; 4. Adalah disyorkan untuk memaparkan nilai semasa dan memberi perhatian kepada kebolehcapaian dan masalah keserasian pelayar apabila menggunakannya.

Cara untuk menambah fungsi seret dan drop ke laman web adalah menggunakan API Draganddrop HTML5, yang disokong secara asli tanpa perpustakaan tambahan. Langkah -langkah khusus adalah seperti berikut: 1. Tetapkan elemen draggable = "benar" untuk membolehkan seretan; 2. Dengarkan Dragstart, Dragover, Drop dan Dragend peristiwa; 3. Tetapkan data dalam Dragstart, menghalang tingkah laku lalai dalam Dragover, dan mengendalikan logik dalam penurunan. Di samping itu, pergerakan elemen dapat dicapai melalui appendchild dan muat naik fail dapat dicapai melalui e.datatransfer.files. Nota: PencegahanDefault mesti dipanggil

AnimatingsvgwithcssispossibleusingkeyframesforbasicicanimationsandTransisiSforinterActiveFt.1.use@keyframestodefineAnimationStageFropertiesLikescale, Opacity, andColor.2.AplyTheAnimationTosvgelements.

Elemen audio dan video dalam HTML dapat meningkatkan dinamik dan pengalaman pengguna laman web. 1. Menanam fail audio menggunakan unsur -unsur dan merealisasikan main balik automatik dan gelung muzik latar belakang melalui sifat autoplay dan gelung. 2. Gunakan elemen untuk membenamkan fail video, tetapkan lebar dan ketinggian dan kawalan sifat, dan menyediakan pelbagai format untuk memastikan keserasian penyemak imbas.

WebRTC adalah teknologi sumber terbuka percuma yang menyokong komunikasi masa nyata antara pelayar dan peranti. Ia menyedari penangkapan audio dan video, pengekodan dan penghantaran point-to-point melalui API terbina dalam, tanpa pemalam. Prinsip kerjanya termasuk: 1. Pelayar menangkap input audio dan video; 2. Data dikodkan dan dihantar terus ke pelayar lain melalui protokol keselamatan; 3. Pelayan isyarat membantu dalam sambungan awal tetapi tidak mengambil bahagian dalam penghantaran media; 4. Sambungan ditubuhkan untuk mencapai komunikasi langsung latensi rendah. Senario aplikasi utama adalah: 1. Persidangan video (seperti Googlemeet, Jitsi); 2. Perkhidmatan pelanggan/sembang video; 3. Permainan dalam talian dan aplikasi kerjasama; 4. IoT dan pemantauan masa nyata. Kelebihannya adalah keserasian silang platform, tidak diperlukan muat turun, penyulitan lalai dan latensi rendah, sesuai untuk komunikasi titik ke titik

Kunci untuk menggunakan RequestAnimationFrame () untuk mencapai animasi yang lancar di HTMLCanvas adalah untuk memahami mekanisme operasi dan bekerjasama dengan proses lukisan kanvas. 1. RequestAnimationFrame () adalah API yang direka untuk animasi oleh penyemak imbas. Ia boleh disegerakkan dengan kadar penyegaran skrin, elakkan ketinggalan atau lusuh, dan lebih cekap daripada setTimeout atau setInterval; 2. Infrastruktur animasi termasuk menyediakan unsur -unsur kanvas, mendapatkan konteks, dan menentukan fungsi gelung utama Animate (), di mana kanvas dibersihkan dan bingkai seterusnya diminta untuk redrawing berterusan; 3. Untuk mencapai kesan dinamik, pemboleh ubah keadaan, seperti koordinat bola kecil, dikemas kini dalam setiap bingkai, dengan itu membentuk

Untuk mengesahkan sama ada penyemak imbas boleh memainkan format video tertentu, anda boleh mengikuti langkah -langkah berikut: 1. Semak dokumen rasmi pelayar atau laman web CANIUSE untuk memahami format yang disokong, seperti Chrome menyokong MP4, Webm, dan lain -lain, Safari terutamanya menyokong MP4; 2. Gunakan ujian tempatan HTML5 untuk memuatkan fail video untuk melihat sama ada ia boleh dimainkan secara normal; 3. Muat naik fail dengan alat dalam talian seperti VideJSTeChInsights atau BrowserStackLive untuk pengesanan silang platform. Apabila ujian, anda perlu memberi perhatian kepada kesan versi yang dikodkan, dan anda tidak boleh bergantung semata -mata pada nama akhiran fail untuk menilai keserasian.
