Tôi đang làm việc trên một ứng dụng web. Làm cách nào để gửi thông báo đẩy cho người dùng iOS khi có nội dung mới?
Tôi đang làm việc trên một ứng dụng web. Làm cách nào để gửi thông báo đẩy cho người dùng iOS khi có nội dung mới?
Câu trả lời:
Cụ thể hơn, để ứng dụng web gửi thông báo đẩy đến thiết bị di động, chẳng hạn như iPhone, thiết bị di động phải đăng ký nhận thông báo đẩy cho một ứng dụng cụ thể. Việc đăng ký thông báo đẩy được thực hiện thông qua ứng dụng gốc và chỉ có thể được thực hiện thông qua ứng dụng gốc. Sau khi ứng dụng gốc được đăng ký cho thông báo đẩy, nó có thể gửi mã ủy quyền đến máy chủ, có thể được sử dụng cùng với chứng chỉ được sử dụng để cung cấp cho ứng dụng gốc, để gửi thông báo đẩy đến thiết bị di động.
Như được chỉ định trong một câu trả lời khác, một tùy chọn là 'bọc' ứng dụng web của bạn trong một ứng dụng gốc. Có nghĩa là bạn sẽ tạo một ứng dụng gốc trình bày về cơ bản UIWebView (dành cho nhà phát triển iPhone) cho người dùng hiển thị ứng dụng web của bạn. Mặc dù tính năng này có khá nhiều chức năng giống như trình duyệt gốc, nhưng bạn sẽ có thể thêm khả năng đăng ký thông báo đẩy bằng cách sử dụng các điều khiển gốc.
Sẽ có lợi cho bạn khi xem lại tài liệu thông báo đẩy của Apple vì nó cung cấp một số thông tin khá tốt về cách chức năng nhắn tin đẩy trên iPhone.
Xem các liên kết này do Peter Hosey cung cấp:
Không, chỉ các ứng dụng iOS gốc mới hỗ trợ thông báo đẩy.
CẬP NHẬT: Các
trang web Mac OS X 10.9 & Safari 7 hiện cũng có thể gửi thông báo đẩy, nhưng điều này vẫn không áp dụng cho iOS. Đọc Hướng dẫn Lập trình Thông báo cho Trang web . Ngoài ra, hãy xem WWDC 2013 Phiên 614 .
Mặc dù chưa được hỗ trợ trên iOS (kể từ iOS 10), các trang web có thể gửi thông báo đẩy tới Firefox và Chrome (Máy tính để bàn / Android) bằng API đẩy .
API đẩy được sử dụng cùng với Thông báo web cũ hơn để hiển thị thông báo. Ưu điểm là API Push cho phép gửi thông báo ngay cả khi người dùng không lướt trang web của bạn, vì chúng được xây dựng dựa trên Service worker (các tập lệnh được đăng ký bởi trình duyệt và có thể được thực thi ở chế độ nền sau đó kể cả sau người dùng của bạn đã rời khỏi trang web của bạn).
Quá trình gửi thông báo bao gồm những việc sau:
Push API hiện được hỗ trợ trên máy tính để bàn và Android của Chrome , Firefox và Opera .
Bạn cũng có thể gửi thông báo đẩy tới màn hình Apple / Safari bằng APN. Cách tiếp cận tương tự, nhưng có nhiều phức tạp (chứng chỉ nhà phát triển apple, gói đẩy, kết nối TCP mức thấp với APN).
Nếu bạn muốn tự triển khai thông báo đẩy, hãy bắt đầu với các hướng dẫn sau:
Nếu bạn đang tìm kiếm một giải pháp giảm thiểu , tôi sẽ đề xuất Pushpad , đây là một dịch vụ mà tôi đã xây dựng.
Cập nhật (tháng 9 năm 2017): Apple đã bắt đầu phát triển các nhân viên dịch vụ cho WebKit ( trạng thái ). Vì service worker là công nghệ nền tảng cho web push, nên đây là một bước tiến lớn.
Google Chrome hiện hỗ trợ tiêu chuẩn W3C cho các thông báo đẩy.
Bạn có thể sử dụng pushhover nếu không muốn tạo ứng dụng gốc của riêng mình: https://pushover.net/
THỰC TẾ .. Đây là thương hiệu hoàn toàn mới khiến bạn nhớ .. Trên phiên bản OS X (Mavericks) mới nhất, bạn CÓ THỂ gửi thông báo đẩy từ một trang web tới màn hình. Nhưng theo tài liệu, KHÔNG phải iPhone:
Note: This document pertains to OS X only. Notifications for websites do not appear on iOS.
Hiện tại Apple có kế hoạch cho phép 2 loại thông báo đẩy: Thông báo đẩy trên trang web OS X và Thông báo cục bộ.
Rào cản rõ ràng ở đây là tính năng này sẽ không hoạt động trên PC, cũng như không cho phép bạn thực hiện thông báo đẩy android.
Hơn nữa, bạn thực sự có thể với các phiên bản cũ như Snow Leapord, gửi thông báo đẩy từ một trang web miễn là trang web đó đang mở và hoạt động. Hệ điều hành Mavericks mới sẽ cho phép thông báo đẩy ngay cả khi trang web không được mở, giả sử bạn đã cấp quyền cho trang web đó để gửi thông báo đẩy.
Từ miệng của Apple:
Trong OS X v10.9 trở lên, bạn có thể gửi Thông báo đẩy trang web OS X từ máy chủ web của mình trực tiếp tới người dùng OS X bằng cách sử dụng dịch vụ Thông báo đẩy của Apple (APN). Đừng nhầm lẫn với thông báo cục bộ, thông báo đẩy có thể đến với người dùng của bạn bất kể trang web của bạn hay trình duyệt web của họ đang mở…
Để tích hợp thông báo đẩy vào trang web của bạn, trước tiên bạn phải trình bày một giao diện cho phép người dùng chọn nhận thông báo. Nếu người dùng đồng ý, Safari sẽ liên hệ với trang web của bạn để yêu cầu thông tin đăng nhập của nó dưới dạng tệp được gọi là gói đẩy. Gói đẩy cũng chứa nội dung thông báo được sử dụng trong suốt OS X và dữ liệu được sử dụng để giao tiếp với dịch vụ web mà bạn định cấu hình. Nếu gói đẩy hợp lệ, bạn sẽ nhận được một số nhận dạng duy nhất cho người dùng trên thiết bị được gọi là mã thông báo thiết bị. Người dùng nhận được thông báo khi bạn gửi kết hợp mã thông báo thiết bị này và tin nhắn của bạn hoặc tải trọng, tới APN.
Khi nhận được thông báo, người dùng có thể nhấp vào thông báo đó để mở trang web mà bạn chọn trong trình duyệt mặc định của người dùng.
Lưu ý: Nếu bạn cần cập nhật lại APN, hãy đọc chương “Dịch vụ thông báo đẩy của Apple” trong Hướng dẫn lập trình thông báo đẩy và cục bộ. Mặc dù tài liệu dành riêng cho thông báo đẩy của iOS và OS X, các mô hình của dịch vụ thông báo đẩy vẫn được áp dụng.
Không, không có cách nào để ứng dụng web nhận được thông báo đẩy. Những gì bạn có thể làm là gói ứng dụng web của mình thành một ứng dụng gốc có thông báo đẩy.
W3C bắt đầu vào năm 2010 một nhóm làm việc để triển khai các thông báo:
http://www.w3.org/2010/web-notifications/
Nhóm công tác này phát triển các API để hiển thị các cơ chế đó cho các Ứng dụng Web — để các nhà phát triển Web đang tạo, ví dụ, ứng dụng khách e-mail dựa trên Web và ứng dụng nhắn tin tức thời có thể tích hợp chặt chẽ hơn hành vi ứng dụng Web của họ với các tính năng thông báo của hệ điều hành của người dùng cuối của họ.
Cuối cùng, kết quả giống như một trò đùa dở khóc dở cười vì nó chỉ hoạt động nếu trang web cụ thể được mở: http://alxgbsn.co.uk/notify.js/
Tôi nghĩ rằng họ đã bỏ lỡ việc triển khai khả năng thêm url đẩy để trình duyệt có thể yêu cầu thông báo trong khi nó đang chạy ở chế độ nền - và trên hết - nếu tất cả các tab đã bị đóng.
Bạn có thể sử dụng HTML5 Websockets để giới thiệu thông điệp đẩy của riêng bạn. Từ Wikipedia :
"Đối với phía máy khách, WebSocket sẽ được triển khai trong Firefox 4, Google Chrome 4, Opera 11 và Safari 5, cũng như phiên bản di động của Safari trong iOS 4.2. Ngoài ra, Trình duyệt BlackBerry trong OS7 cũng hỗ trợ WebSockets."
Để làm điều này, bạn cần máy chủ của nhà cung cấp riêng của mình để đẩy các thông báo đến các máy khách.
Nếu bạn muốn sử dụng APN (Thông báo đẩy của Apple) hoặc C2DM (Thông báo từ đám mây tới thiết bị), bạn phải có một ứng dụng gốc phải được tải xuống thông qua cửa hàng trực tuyến.
Pushbullet là một sự thay thế tuyệt vời cho việc này.
Tuy nhiên, người dùng cần phải có tài khoản Pushbullet và cài đặt ứng dụng (iOS, Android) hoặc cài đặt plugin (Chrome, Opera, Firefox và Windows).
Bạn có thể sử dụng API bằng cách tạo ứng dụng Pushbullet và kết nối người dùng ứng dụng của bạn với người dùng Pushbullet bằng oAuth2.
Sử dụng thư viện sẽ dễ dàng hơn nhiều, đối với PHP, tôi có thể giới thiệu ivkos / Pushbullet-for-PHP .
Kiểm tra thông báo đẩy trên web Xtify. http://getreactor.xtify.com/ Công cụ này cho phép bạn đẩy nội dung lên trang web và nhắm mục tiêu khách truy cập cũng như kích hoạt thông báo dựa trên các sự kiện DOM của trình duyệt. Nó được thiết kế dành riêng cho thiết bị di động.