เว็บแอปพลิเคชันจะส่งข้อความ Push ไปยังอุปกรณ์ iOS ได้อย่างไร [ปิด]


121

ฉันกำลังทำงานเกี่ยวกับเว็บแอป ฉันจะส่งการแจ้งเตือนแบบพุชไปยังผู้ใช้ iOS ได้อย่างไรเมื่อมีเนื้อหาใหม่


การแจ้งเตือนอะไรตอนนี้?

4
@rfw: การแจ้งเตือนแบบพุชของ iOS support.apple.com/kb/HT3576 developer.apple.com/library/ios/documentation/…
Peter Hosey

คุณกำลังค้นหาด้วยเสียงหรือไม่? แล้วถ้าคุณต้องการการแจ้งเตือนด้วยเสียงในขณะที่โทรศัพท์มือถือล็อคโหมด; ชื่อของมันคือดันเฉพาะ
mrbengi

คำตอบ:


93

เพื่อให้มีความเฉพาะเจาะจงมากขึ้นเพื่อให้เว็บแอปพลิเคชันสามารถส่งการแจ้งเตือนแบบพุชไปยังอุปกรณ์เคลื่อนที่เช่น iPhone อุปกรณ์เคลื่อนที่ต้องลงทะเบียนเพื่อรับการแจ้งเตือนแบบพุชสำหรับแอปพลิเคชันเฉพาะ การลงทะเบียนสำหรับการแจ้งเตือนแบบพุชทำได้ผ่านแอพที่มาพร้อมเครื่องและสามารถทำได้ผ่านแอพเนทีฟเท่านั้น เมื่อลงทะเบียนแอปเนทีฟสำหรับการแจ้งเตือนแบบพุชแล้วแอปจะสามารถส่งโทเค็นการอนุญาตไปยังเซิร์ฟเวอร์ซึ่งสามารถใช้ร่วมกับใบรับรองที่ใช้ในการจัดเตรียมไคลเอนต์ดั้งเดิมเพื่อส่งการแจ้งเตือนแบบพุชไปยังอุปกรณ์มือถือ

ตามที่ระบุไว้ในคำตอบอื่นทางเลือกหนึ่งคือ "รวม" เว็บแอปพลิเคชันของคุณในแอปพลิเคชันที่มาพร้อมเครื่อง หมายความว่าคุณจะสร้างแอปพลิเคชันเนทีฟที่แสดง UIWebView (สำหรับ iPhone dev) ให้กับผู้ใช้ที่แสดงเว็บแอปพลิเคชันของคุณ แม้ว่าฟังก์ชันนี้จะทำงานในลักษณะเดียวกับเบราว์เซอร์ดั้งเดิม แต่คุณจะสามารถเพิ่มความสามารถในการลงทะเบียนสำหรับการแจ้งเตือนแบบพุชโดยใช้การควบคุมแบบเนทีฟ

จะเป็นประโยชน์สำหรับคุณในการตรวจสอบเอกสารการแจ้งเตือนแบบพุชของ Apple เนื่องจากให้ข้อมูลที่ดีเกี่ยวกับฟังก์ชันการส่งข้อความแบบพุชบน iPhone

ดูลิงก์เหล่านี้โดย Peter Hosey:


ขอบคุณสำหรับคำตอบนี้ฉันกำลังมองหาสิ่งเดียวกัน สิ่งนี้มีผลด้วยหรือไม่เมื่อคุณเพิ่มเมตาแท็ก 'apple-mobile-web-app-able'
Mark Knol

1
นี่เป็นการเปลี่ยนแปลงวิธีที่การแจ้งเตือนแบบพุชเกิดขึ้นกับผู้พัฒนา.
google.com/web/updates/2015/03/…

1
ณ วันที่ 02/2016 FF, Chrome และ Safari สามารถลงทะเบียนเพื่อรับการพุชจาก webapp
Yvon Huynh

9
สิ่งนี้ไม่เป็นความจริงอีกต่อไปในปี 2559 คุณสามารถส่งการแจ้งเตือนจากเว็บแอป อ่านคำตอบของฉันด้านล่าง
collimarco

แต่ webview ใช้งานไม่ได้ดีมันพลาดคุณสมบัติบางอย่างและมีข้อบกพร่องมากกว่าซาฟารี
Black

46

ไม่ได้มีเพียงแอปพลิเคชัน iOS ดั้งเดิมเท่านั้นที่รองรับการแจ้งเตือนแบบพุช

อัปเดต:
เว็บไซต์ MacOS X 10.9 และ Safari 7 สามารถส่งการแจ้งเตือนแบบพุชได้แล้ว แต่ยังใช้ไม่ได้กับ iOS อ่านประกาศ Programming คู่มือสำหรับเว็บไซต์ ยังตรวจสอบWWDC 2013 เซสชัน 614


1
ตอนนี้คุณสามารถทำได้บน Maverix & Safari 7!
themihai


Safari 7 แน่ใจว่าสามารถรับการแจ้งเตือนแบบพุชเหล่านี้ได้และขึ้นอยู่กับว่าเว็บแอปของคุณกำลังทำงานอยู่แบ็กเอนด์ใดมีบริการบางอย่างที่อนุญาตให้ทำสิ่งนี้: pushwoosh.com , pushmonkey.launchrock.comหรือคุณสามารถปรับใช้เซิร์ฟเวอร์ของคุณเองซึ่งคล้ายกับ การแจ้งเตือนแบบพุชของ iOS
ทิวดอร์

ฉันได้ยินมาว่าสิ่งนี้เรียกว่าการกดเฉพาะ
mrbengi

3
คำถาม OP เกี่ยวกับ iOS โดยเฉพาะ การรองรับ OSX / macOS เป็นสิ่งที่ดี แต่การแจ้งเตือนแบบพุชยังคงใช้งานได้บน iOS จากแอปเนทีฟเท่านั้น
squarecandy

44

ในขณะที่ยังไม่มีการสนับสนุนบน iOS (เหมือน iOS 10) เว็บไซต์ที่สามารถส่งการแจ้งเตือนผลักดันใน Firefox และ Chrome (สก์ท็อป / Android) กับกด API

Push API ใช้ร่วมกับWeb Notificationsรุ่นเก่าเพื่อแสดงข้อความ ข้อดีคือ Push API ช่วยให้สามารถส่งการแจ้งเตือนได้แม้ว่าผู้ใช้จะไม่ได้ท่องเว็บไซต์ของคุณเนื่องจากพวกเขาสร้างขึ้นจาก Service Workers (สคริปต์ที่ลงทะเบียนโดยเบราว์เซอร์และสามารถเรียกใช้งานในพื้นหลังได้ในภายหลัง ผู้ใช้ของคุณออกจากเว็บไซต์ของคุณแล้ว)

ขั้นตอนการส่งการแจ้งเตือนมีดังต่อไปนี้:

  1. ผู้ใช้เยี่ยมชมเว็บไซต์ของคุณ (ต้องได้รับการรักษาความปลอดภัยผ่าน HTTPS): คุณขออนุญาตเพื่อแสดงการแจ้งเตือนแบบพุชและคุณลงทะเบียนผู้ให้บริการ (สคริปต์ที่จะดำเนินการเมื่อได้รับการแจ้งเตือนแบบพุช)
  2. หากผู้ใช้ให้สิทธิ์คุณสามารถอ่านโทเค็นอุปกรณ์ (ปลายทาง) ซึ่งควรถูกส่งไปยังเซิร์ฟเวอร์และจัดเก็บไว้
  3. ตอนนี้คุณสามารถส่งการแจ้งเตือนไปยังผู้ใช้: เซิร์ฟเวอร์ของคุณส่งคำขอ HTTP POST ไปยังปลายทาง (ซึ่งเป็น URL ที่มีโทเค็นอุปกรณ์) เซิร์ฟเวอร์ที่รับคำขอเป็นของผู้ผลิตเบราว์เซอร์ (เช่น Google, Mozilla): เบราว์เซอร์เชื่อมต่ออยู่ตลอดเวลาและสามารถอ่านการแจ้งเตือนที่เข้ามาได้
  4. เมื่อเบราว์เซอร์ของผู้ใช้ได้รับการแจ้งเตือนเรียกใช้ผู้ปฏิบัติงานบริการซึ่งมีหน้าที่จัดการเหตุการณ์ดึงข้อมูลการแจ้งเตือนจากเซิร์ฟเวอร์และแสดงการแจ้งเตือนแก่ผู้ใช้

กด API ปัจจุบันสนับสนุนบนเดสก์ทอปและ AndroidโดยChrome , FirefoxและOpera

คุณยังสามารถส่งข้อความ Push ไปยังเดสก์ท็อปApple / Safariโดยใช้ APN วิธีการนี้คล้ายกัน แต่มีความซับซ้อนมากมาย (ใบรับรองนักพัฒนาของ Apple แพ็คเกจพุชการเชื่อมต่อ TCP ระดับต่ำกับ APN

หากคุณต้องการใช้การแจ้งเตือนแบบพุชด้วยตัวเองให้เริ่มด้วยบทช่วยสอนเหล่านี้:

หากคุณกำลังมองหาโซลูชันที่ลดลงฉันขอแนะนำPushpadซึ่งเป็นบริการที่ฉันสร้างขึ้น

อัปเดต (กันยายน 2017): Apple ได้เริ่มพัฒนาพนักงานบริการสำหรับ WebKit ( สถานะ ) เนื่องจากพนักงานบริการเป็นเทคโนโลยีพื้นฐานสำหรับการผลักดันเว็บจึงเป็นก้าวที่ยิ่งใหญ่


3
ใน iOS 10 (เบต้าสาธารณะ) Mobile Safari ไม่รองรับการแจ้งเตือนแบบพุช
Robin Daugherty

1
ไม่ใช่การแก้ไขคำตอบของคุณฉันกำลังให้ข้อมูลสำหรับผู้ที่กำลังมองหาการสนับสนุน Safari Mobile สักวันพวกเขาอาจรองรับการแจ้งเตือนแบบพุช แต่พวกเขาไม่ได้เป็นรุ่นที่ฉันพูดถึง
Robin Daugherty

14
Safari คือ Internet Explorer ใหม่ Apple เป็น Microsoft ใหม่ ฮึ ....
คอสตา

1
@Kevincore ไม่น่าเสียดายที่ไม่มีการอัปเดตใด ๆ Safari บน iOS ไม่รองรับการพุชเว็บในขณะนี้ (พฤษภาคม 2017)
collimarco

1
มากดดัน Apple กันบ้าง : ฉันเขียนย่อหน้าที่คุณสามารถคัดลอกและส่งไปยัง Apple Bug Tracker เพื่อขอให้ Apple เพิ่มเว็บพุชไปยัง iOS
collimarco

10

Google Chrome รองรับมาตรฐาน W3C สำหรับการแจ้งเตือนแบบพุชแล้ว

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


นี่คือบทช่วยสอนโดยละเอียด: developers.google.com/web/updates/2015/03/…
ayke

1
สิ่งนี้รวม Chrome สำหรับ iOS หรือไม่ (คำถามเดิมเฉพาะสำหรับ iOS)
Simon East

ยังไม่มี iOS บนอะไรเลย ต้องใช้แอปเนทีฟ: \
rogerdpack


9

จริงๆแล้ว .. นี่คือความคิดใหม่ของคุณ .. ใน OS X (Mavericks) เวอร์ชันใหม่ล่าสุดคุณสามารถส่งข้อความ Push จากหน้าเว็บไปยังเดสก์ท็อปได้ แต่ตามเอกสารไม่ใช่ iPhone:

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

ปัจจุบัน Apple มีแผนที่จะอนุญาตการแจ้งเตือนแบบพุช 2 ประเภท ได้แก่ OS X Website Push Notifications และ Local Notifications

อุปสรรคที่ชัดเจนที่นี่คือสิ่งนี้จะไม่ทำงานบนพีซีและจะไม่อนุญาตให้คุณทำการแจ้งเตือนแบบพุชของ Android

นอกจากนี้คุณสามารถใช้เวอร์ชันเก่าอย่าง Snow Leapord ส่งการแจ้งเตือนแบบพุชจากเว็บไซต์ได้ตราบเท่าที่เว็บไซต์ดังกล่าวเปิดอยู่และใช้งานได้ Mavericks OS ใหม่จะอนุญาตการแจ้งเตือนแบบพุชแม้ว่าไซต์นั้นจะไม่ได้เปิดอยู่ก็ตามโดยสมมติว่าคุณได้ให้สิทธิ์ไซต์ดังกล่าวแล้วในการส่งการแจ้งเตือนแบบพุช

จากปากของ Apple:

ใน OS X v10.9 และใหม่กว่าคุณสามารถส่ง OS X Website Push Notifications จากเว็บเซิร์ฟเวอร์ของคุณไปยังผู้ใช้ OS X ได้โดยตรงโดยใช้บริการ Apple Push Notification (APN) เพื่อไม่ให้สับสนกับการแจ้งเตือนในพื้นที่การแจ้งเตือนแบบพุชสามารถเข้าถึงผู้ใช้ของคุณได้ไม่ว่าเว็บไซต์ของคุณหรือเว็บเบราว์เซอร์จะเปิดอยู่ ...

ในการรวมการแจ้งเตือนแบบพุชในเว็บไซต์ของคุณก่อนอื่นคุณต้องนำเสนออินเทอร์เฟซที่อนุญาตให้ผู้ใช้เลือกรับการแจ้งเตือน หากผู้ใช้ยินยอม Safari จะติดต่อเว็บไซต์ของคุณเพื่อขอข้อมูลรับรองในรูปแบบของไฟล์ที่เรียกว่าแพ็กเกจพุช แพคเกจพุชยังมีเนื้อหาการแจ้งเตือนที่ใช้ทั่วทั้ง OS X และข้อมูลที่ใช้ในการสื่อสารกับบริการเว็บที่คุณกำหนดค่า หากแพ็กเกจพุชถูกต้องคุณจะได้รับตัวระบุเฉพาะสำหรับผู้ใช้บนอุปกรณ์ที่เรียกว่าโทเค็นอุปกรณ์ ผู้ใช้จะได้รับการแจ้งเตือนเมื่อคุณส่งโทเค็นอุปกรณ์นี้กับข้อความของคุณหรือเพย์โหลดไปยัง APN

เมื่อได้รับการแจ้งเตือนผู้ใช้สามารถคลิกเพื่อเปิดหน้าเว็บที่คุณเลือกในเบราว์เซอร์เริ่มต้นของผู้ใช้

หมายเหตุ: หากคุณต้องการทบทวน APN ให้อ่านบท“ บริการแจ้งเตือนแบบพุชของ Apple” ในคู่มือการเขียนโปรแกรมการแจ้งเตือนในเครื่องและการแจ้งเตือนแบบพุช แม้ว่าเอกสารจะเฉพาะสำหรับการแจ้งเตือนแบบพุช iOS และ OS X แต่กระบวนทัศน์ของบริการแจ้งเตือนแบบพุชยังคงมีผลบังคับใช้


5
หวังว่านี่หมายความว่าเราจะเห็นการแจ้งเตือนแบบพุชบนเว็บใน iOS 8 หรือ 9 โดยไม่ต้องขยับนิ้ว
Travis

5
เอกสารของนักพัฒนากล่าวอย่างชัดเจนว่าการแจ้งเตือนทางเว็บใช้ไม่ได้กับ iOS ในปัจจุบัน เป็นเพียงคำชี้แจงของคุณในย่อหน้าแรก
Daniel Sellers

1
รู้จักแอปเปิ้ลพวกเขาจะอนุญาตให้ใช้กับ iOS เวอร์ชันเดียวและลบออกในรุ่นถัดไป
Alexander Derck

6

ไม่ไม่มีวิธีใดที่เว็บแอปจะรับการแจ้งเตือนแบบพุชได้ สิ่งที่คุณทำได้คือการรวมเว็บแอปของคุณเข้ากับแอปเนทีฟที่มีข้อความ Push


คุณหมายความว่าอย่างไรเมื่อคุณพูดว่า "รวมเว็บแอปลงในแอปเนทีฟ"
Frankie

1
Frankie: เป็นเพียงแอปเนทีฟที่แสดง UIWebView ซึ่งจะโหลดไซต์ของคุณ ที่ช่วยให้คุณมี webapp ของคุณเป็นแอปเนทีฟบนโทรศัพท์
JustSid

ดังนั้นฉันเดาว่าใน xcode นี่จะเป็น "WindowBase Aplication" สำหรับแอปเนทีฟใช่ไหม
Frankie

ตอนนี้คุณสามารถทำได้บน Maverix & Safari 7!
themihai

1
@DanDascalescu ทำไมฉัน? ยังไม่สามารถทำได้บน iOS ซึ่งเป็นคำถามเกี่ยวกับ คำตอบคือไม่ถูกต้อง
JustSid

2

W3C เริ่มต้นในปี 2010 โดยเป็นคณะทำงานเพื่อดำเนินการแจ้งเตือน:
http://www.w3.org/2010/web-notifications/

คณะทำงานนี้พัฒนา API ที่เปิดเผยกลไกเหล่านั้นไปยังเว็บแอปพลิเคชันเพื่อให้นักพัฒนาเว็บที่สร้างเช่นไคลเอนต์อีเมลบนเว็บและไคลเอนต์การส่งข้อความโต้ตอบแบบทันทีสามารถรวมพฤติกรรมของเว็บแอปพลิเคชันเข้ากับคุณลักษณะการแจ้งเตือนของระบบปฏิบัติการได้อย่างใกล้ชิดมากขึ้น ของผู้ใช้ปลายทาง

ในที่สุดผลลัพธ์ก็เป็นเหมือนเรื่องตลกร้ายเพราะจะได้ผลก็ต่อเมื่อเปิดเว็บไซต์เฉพาะ: http://alxgbsn.co.uk/notify.js/

ฉันคิดว่าพวกเขาพลาดที่จะใช้ความเป็นไปได้ในการเพิ่ม URL แบบพุชดังนั้นเบราว์เซอร์จึงสามารถขอการแจ้งเตือนในขณะที่ทำงานในพื้นหลังและเหนือสิ่งอื่นใดหากปิดแท็บทั้งหมด


2

คุณสามารถใช้ HTML5 Websockets เพื่อแนะนำข้อความพุชของคุณเอง จากWikipedia :

"สำหรับฝั่งไคลเอ็นต์ WebSocket จะถูกนำไปใช้ใน Firefox 4, Google Chrome 4, Opera 11 และ Safari 5 รวมถึง Safari เวอร์ชันมือถือใน iOS 4.2 นอกจากนี้เบราว์เซอร์ BlackBerry ใน OS7 ยังรองรับ WebSockets ด้วย"

ในการดำเนินการนี้คุณต้องมีเซิร์ฟเวอร์ผู้ให้บริการของคุณเองเพื่อส่งข้อความไปยังลูกค้า
หากคุณต้องการใช้ APN (Apple Push Notification) หรือ C2DM (Cloud to Device Message) คุณต้องมีแอปพลิเคชันที่มาพร้อมเครื่องซึ่งต้องดาวน์โหลดผ่านร้านค้าออนไลน์


6
มันจะใช้งานได้ก็ต่อเมื่อเปิดเบราว์เซอร์และในหน้าเว็บแอป ไม่เหมือนกับการแจ้งเตือนแบบพุชซึ่งทำงานได้แม้ปิดแอปพลิเคชัน
Hagai L

2

Pushbulletเป็นทางเลือกที่ดีสำหรับสิ่งนี้

อย่างไรก็ตามผู้ใช้จำเป็นต้องมีบัญชี Pushbullet และติดตั้งแอป (iOS, Android) หรือติดตั้งปลั๊กอิน (Chrome, Opera, Firefox และ Windows)

คุณสามารถใช้APIโดยสร้างแอป Pushbullet และเชื่อมต่อผู้ใช้แอปพลิเคชันของคุณกับผู้ใช้ Pushbullet โดยใช้ oAuth2

การใช้ห้องสมุดจะทำให้มันง่ายมากสำหรับ PHP ฉันจะแนะนำivkos / Pushbullet สำหรับ PHP


1

ตรวจสอบการแจ้งเตือน Xtify Web Push http://getreactor.xtify.com/เครื่องมือนี้ช่วยให้คุณสามารถพุชเนื้อหาไปยังหน้าเว็บและกำหนดเป้าหมายผู้เยี่ยมชมตลอดจนเรียกข้อความตามเหตุการณ์ DOM ของเบราว์เซอร์ ออกแบบมาโดยเฉพาะโดยคำนึงถึงมือถือ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.