Bagaimana aplikasi web mengirim pemberitahuan push ke perangkat iOS? [Tutup]

121

Saya sedang mengerjakan aplikasi web. Bagaimana cara mengirim notifikasi push ke pengguna iOS jika ada konten baru?

Frankie
sumber
Pemberitahuan apa sekarang?
Apakah Anda mencari dengan suara? Kemudian jika Anda ingin pemberitahuan suara saat ponsel dalam mode terkunci; namanya adalah Specific Push.
mrbengi

Jawaban:

93

Untuk lebih spesifiknya, agar aplikasi web dapat mengirimkan pemberitahuan push ke perangkat seluler, seperti iPhone, perangkat seluler tersebut harus sudah terdaftar untuk menerima pemberitahuan push untuk aplikasi tertentu. Pendaftaran untuk notifikasi push dilakukan melalui aplikasi asli dan hanya dapat dilakukan melalui aplikasi asli. Setelah didaftarkan untuk pemberitahuan push, aplikasi asli dapat mengirim token otorisasi ke server, yang dapat digunakan bersama dengan sertifikat yang digunakan untuk menyediakan klien asli, untuk mengirim pemberitahuan push ke perangkat seluler.

Seperti yang ditentukan dalam jawaban lain, salah satu opsinya adalah 'membungkus' aplikasi web Anda dalam aplikasi asli. Artinya Anda akan membuat aplikasi asli yang pada dasarnya menyajikan UIWebView (untuk iPhone dev) kepada pengguna yang menampilkan aplikasi web Anda. Meskipun ini cukup banyak berfungsi dengan cara yang sama seperti browser asli, Anda akan dapat menambahkan kemampuan untuk mendaftar pemberitahuan push menggunakan kontrol asli.

Akan bermanfaat bagi Anda untuk meninjau dokumen pemberitahuan push Apple karena ini memberikan beberapa informasi yang cukup bagus tentang bagaimana fungsi pesan push pada iPhone.

Lihat tautan berikut yang disediakan oleh Peter Hosey:

Kris Babic
sumber
Terima kasih atas jawaban ini, saya mencari hal yang sama. Apakah ini juga berlaku ketika Anda telah menambahkan tag meta 'apple-mobile-web-app-mampu'?
Mark Knol
1
Ini mengubah cara pemberitahuan push terjadi developers.google.com/web/updates/2015/03/…
Daniel Luca CleanUnicorn
1
per 02/2016, FF, Chrome dan Safari dapat mendaftar untuk push dari webapp.
Yvon Huynh
9
Ini tidak berlaku lagi di tahun 2016, Anda dapat mengirim pemberitahuan dari aplikasi web. Baca jawaban saya di bawah.
collimarco
Tetapi tampilan web tidak berfungsi dengan baik, beberapa fitur hilang dan memiliki lebih banyak bug daripada safari
Hitam
46

Tidak, hanya aplikasi iOS asli yang mendukung pemberitahuan push.

PEMBARUAN:
Situs web Mac OS X 10.9 & Safari 7 sekarang juga dapat mengirim pemberitahuan push, tetapi ini masih tidak berlaku untuk iOS. Baca Panduan Pemrograman Notifikasi untuk Situs Web . Lihat juga WWDC 2013 Session 614 .

Felix
sumber
1
sekarang Anda bisa di Maverix & Safari 7!
themihai
Safari 7 pasti dapat menerima pemberitahuan push ini dan tergantung pada backend apa aplikasi web Anda berjalan, ada beberapa layanan yang memungkinkan ini: pushwoosh.com , pushmonkey.launchrock.com atau Anda dapat menerapkan server Anda sendiri, yang sangat mirip dengan Pemberitahuan push iOS.
Tudor
Saya mendengar bahwa ini disebut sebagai Dorongan Khusus.
mrbengi
3
Pertanyaan OP khusus tentang iOS. Dukungan OSX / macOS untuk ini bagus, tetapi pemberitahuan push masih hanya berfungsi di iOS dari aplikasi asli.
squarecandy
44

Meskipun belum didukung di iOS (mulai iOS 10), situs web dapat mengirimkan pemberitahuan push ke Firefox dan Chrome (Desktop / Android) dengan Push API .

API Push digunakan bersama dengan Pemberitahuan Web lama untuk menampilkan pesan. Keuntungannya adalah bahwa Push API memungkinkan pemberitahuan dikirimkan bahkan ketika pengguna tidak menjelajahi situs web Anda, karena mereka dibuat di atas Pekerja Layanan (skrip yang didaftarkan oleh browser dan dapat dijalankan di latar belakang di lain waktu bahkan setelah pengguna Anda telah meninggalkan situs web Anda).

Proses pengiriman notifikasi melibatkan hal-hal berikut:

  1. seorang pengguna mengunjungi situs web Anda (harus diamankan melalui HTTPS): Anda meminta izin untuk menampilkan pemberitahuan push dan Anda mendaftarkan pekerja layanan (skrip yang akan dieksekusi saat pemberitahuan push diterima)
  2. jika pengguna telah memberikan izin, Anda dapat membaca token perangkat (titik akhir) yang harus dikirim ke server dan disimpan
  3. sekarang Anda dapat mengirim pemberitahuan kepada pengguna: server Anda membuat permintaan HTTP POST ke titik akhir (yang merupakan URL yang berisi token perangkat). Server yang menerima permintaan dimiliki oleh pembuat browser (misalnya Google, Mozilla): browser selalu terhubung dengannya dan dapat membaca notifikasi yang masuk.
  4. saat browser pengguna menerima notifikasi, menjalankan pekerja layanan, yang bertanggung jawab untuk mengelola acara, mengambil data notifikasi dari server dan menampilkan notifikasi kepada pengguna

API Push saat ini didukung di desktop dan Android oleh Chrome , Firefox dan Opera .

Anda juga dapat mengirim pemberitahuan push ke desktop Apple / Safari menggunakan APN. Pendekatannya serupa, tetapi dengan banyak komplikasi (sertifikat pengembang apel, paket push, koneksi TCP tingkat rendah ke APN).

Jika Anda ingin menerapkan pemberitahuan push sendiri, mulailah dengan tutorial ini:

Jika Anda mencari solusi setetes, saya akan menyarankan Pushpad , yang merupakan layanan yang saya bangun.

Pembaruan (September 2017): Apple telah mulai mengembangkan pekerja layanan untuk WebKit ( status ). Karena pekerja layanan adalah teknologi fundamental untuk web push, ini adalah langkah maju yang besar.

collimarco
sumber
3
Mulai iOS 10 (beta publik), Mobile Safari tidak mendukung pemberitahuan push.
Robin Daugherty
1
Itu bukan koreksi jawaban Anda, saya memberikan informasi untuk orang yang mencari dukungan Safari Mobile. Suatu hari nanti mungkin mereka akan mendukung notifikasi push, tetapi tidak pada rilis yang saya sebutkan.
Robin Daugherty
14
Safari adalah Internet Explorer baru. Apple adalah Microsoft baru. Ugh ....
Costa
1
@Kevore Tidak, sayangnya tidak ada pembaruan apa pun. Safari di iOS tidak mendukung web push saat ini (Mei 2017).
collimarco
1
Mari kita beri tekanan pada Apple: Saya menulis beberapa paragraf yang dapat Anda salin dan kirimkan ke Apple Bug Tracker untuk meminta Apple menambahkan web push ke iOS.
collimarco
10

Google Chrome sekarang mendukung standar W3C untuk pemberitahuan push.

http://www.w3.org/TR/push-api/

BonzaiThePenguin
sumber
Ini adalah tutorial menyeluruh: developers.google.com/web/updates/2015/03/…
ayke
1
Apakah ini termasuk Chrome untuk iOS? (Pertanyaan asli khusus untuk iOS)
Simon East
Belum ada iOS pada apa pun. Harus menggunakan aplikasi asli: \
rogerdpack
9

SEBENARNYA .. Ini adalah pikiran baru Anda .. Pada versi terbaru OS X (Mavericks) Anda BISA mengirim pemberitahuan push dari halaman web ke desktop. Tetapi menurut dokumentasi, BUKAN iPhone:

Note: This document pertains to OS X only. Notifications for websites do not appear on iOS.

Saat ini Apple memiliki rencana untuk mengizinkan 2 jenis pemberitahuan push: Pemberitahuan Push Situs Web OS X dan Pemberitahuan Lokal.

Hambatan yang jelas di sini adalah bahwa ini tidak akan berfungsi pada PC, juga tidak akan memungkinkan Anda untuk melakukan notifikasi push android.

Selain itu, Anda sebenarnya dapat dengan versi setua Snow Leapord, mengirim pemberitahuan push dari situs web selama situs web tersebut terbuka dan aktif. OS Mavericks yang baru akan mengizinkan pemberitahuan push bahkan jika situs tersebut tidak dibuka, dengan asumsi Anda telah memberikan izin kepada situs tersebut untuk mengirim pemberitahuan push.

Dari mulut apel:

Di OS X v10.9 dan versi lebih baru, Anda dapat mengirimkan Pemberitahuan Push Situs OS X dari server web Anda langsung ke pengguna OS X dengan menggunakan layanan Pemberitahuan Push Apple (APN). Jangan sampai tertukar dengan pemberitahuan lokal, pemberitahuan push dapat menjangkau pengguna Anda terlepas dari apakah situs web Anda atau browser web mereka terbuka…

Untuk mengintegrasikan pemberitahuan push di situs web Anda, Anda terlebih dahulu menampilkan antarmuka yang memungkinkan pengguna untuk ikut serta menerima pemberitahuan. Jika pengguna setuju, Safari menghubungi situs web Anda untuk meminta kredensial dalam bentuk file yang disebut paket push. Paket push juga berisi aset notifikasi yang digunakan di seluruh OS X dan data yang digunakan untuk berkomunikasi ke layanan web yang Anda konfigurasikan. Jika paket push valid, Anda menerima pengenal unik untuk pengguna di perangkat yang dikenal sebagai token perangkat. Pengguna menerima notifikasi saat Anda mengirim kombinasi token perangkat ini dan pesan Anda, atau payload, ke APN.

Setelah menerima notifikasi, pengguna dapat mengkliknya untuk membuka halaman web yang Anda pilih di browser default pengguna.

Catatan: Jika Anda memerlukan penyegar tentang APN, baca bab "Layanan Notifikasi Push Apple" di Panduan Pemrograman Lokal dan Notifikasi Push. Meskipun dokumen tersebut khusus untuk pemberitahuan push iOS dan OS X, paradigma layanan pemberitahuan push masih berlaku.

Jonathan Nemeth
sumber
5
Ini, mudah-mudahan, berarti kita akan melihat pemberitahuan push berbasis web oleh iOS 8 atau 9. Tetap berharap.
Travis
5
Dokumen pengembang mengatakan secara eksplisit bahwa pemberitahuan web tidak berlaku untuk iOS saat ini. Sekadar klarifikasi paragraf pertama Anda.
Daniel Sellers
1
Mengetahui apel mereka akan mengizinkannya untuk satu versi iOS dan menghapusnya untuk yang berikutnya
Alexander Derck
6

Tidak, tidak ada cara bagi aplikasi web untuk menerima pemberitahuan push. Apa yang dapat Anda lakukan adalah menggabungkan aplikasi web Anda menjadi aplikasi asli yang memiliki pemberitahuan push.

JustSid
sumber
apa yang Anda maksud saat mengatakan "gabungkan aplikasi web Anda menjadi aplikasi asli"?
Frankie
1
Frankie: Ya, hanya aplikasi asli yang menampilkan UIWebView yang kemudian memuat situs Anda. Itu memungkinkan Anda memiliki aplikasi web Anda sebagai aplikasi asli di telepon.
JustSid
jadi saya kira di xcode ini akan menjadi "Aplikasi WindowBase" untuk aplikasi asli, bukan?
Frankie
sekarang Anda bisa di Maverix & Safari 7!
themihai
1
@DanDascalescu Mengapa saya harus? Itu masih tidak mungkin di iOS, itulah pertanyaannya. Jawabannya tidak salah.
JustSid
2

W3C memulai pada tahun 2010 sebuah kelompok kerja untuk mengimplementasikan pemberitahuan:
http://www.w3.org/2010/web-notifications/

Kelompok Kerja ini mengembangkan API yang mengekspos mekanisme tersebut ke Aplikasi Web — sehingga pengembang Web yang membuat, misalnya, klien email berbasis Web dan klien pesan instan dapat lebih mengintegrasikan perilaku aplikasi Web mereka dengan fitur pemberitahuan dari sistem operasi. pengguna akhir mereka.

Akhirnya hasilnya seperti lelucon yang buruk karena hanya berfungsi jika situs web tertentu terbuka: http://alxgbsn.co.uk/notify.js/

Saya pikir mereka melewatkan untuk menerapkan kemungkinan untuk menambahkan url push sehingga browser dapat meminta pemberitahuan saat berjalan di latar belakang - dan yang terpenting - jika semua tab telah ditutup.

mgutt
sumber
2

Anda dapat menggunakan HTML5 Websockets untuk memperkenalkan pesan push Anda sendiri. Dari Wikipedia :

"Untuk sisi klien, WebSocket akan diimplementasikan di Firefox 4, Google Chrome 4, Opera 11, dan Safari 5, serta versi seluler Safari di iOS 4.2. Juga Browser BlackBerry di OS7 mendukung WebSockets."

Untuk melakukan ini, Anda memerlukan server penyedia Anda sendiri untuk mendorong pesan ke klien.
Jika Anda ingin menggunakan APN (Apple Push Notification) atau C2DM (Cloud to Device Message), Anda harus memiliki aplikasi asli yang harus diunduh melalui toko online.

Foyzul Karim
sumber
6
baik, itu hanya akan berfungsi jika browser dibuka dan di halaman aplikasi web. tidak seperti pemberitahuan push, yang berfungsi bahkan saat aplikasi dimatikan.
Hagai L
2

Pushbullet adalah alternatif yang bagus untuk ini.

Namun pengguna harus memiliki akun Pushbullet dan aplikasi terpasang (iOS, Android) atau plugin terpasang (Chrome, Opera, Firefox dan Windows).

Anda dapat menggunakan API dengan membuat aplikasi Pushbullet, dan menghubungkan pengguna aplikasi Anda ke pengguna Pushbullet menggunakan oAuth2.

Menggunakan perpustakaan akan membuatnya lebih mudah, untuk PHP saya dapat merekomendasikan ivkos / Pushbullet-for-PHP .

Tim
sumber
1

Lihat pemberitahuan Xtify Web Push. http://getreactor.xtify.com/ Alat ini memungkinkan Anda untuk mendorong konten ke halaman web dan menargetkan pengunjung serta memicu pesan berdasarkan peristiwa browser DOM. Ini dirancang khusus dengan mempertimbangkan seluler.

Jeremy
sumber