更具体地说,为了让 Web 应用程序向移动设备(如 iPhone)发送推送通知,移动设备必须注册以接收特定应用程序的推送通知。推送通知的注册是通过本地应用程序完成的,只能通过本地应用程序执行。一旦本机应用程序注册为推送通知,它就可以将授权令牌发送到服务器,这可以与用于提供本机客户端的证书一起使用,从而将推送通知发送到移动设备。
正如在另一个答案中指出的那样,一个选项是将您的 Web 应用程序“包装”在一个本地应用程序中。这意味着您将创建一个本地应用程序,它基本上向显示 Web 应用程序的用户显示一个 UIWebView (针对 iPhone dev)。虽然这与本机浏览器的功能基本相同,但是您可以添加使用本机控件注册推送通知的功能。
It would be beneficial to you to review the Apple's push notification document as it provides some pretty good information on how push messaging functions on the iPhone.
"For the client side, WebSocket was to be implemented in Firefox 4,
谷歌 Chrome 4、 Opera 11和 Safari 5,以及移动版本
另外,OS7中的 BlackBerry 浏览器也支持 Safari 浏览器
WebSockets”
To do this, you need your own provider server to push the messages to the clients. If you want to use APN (Apple Push Notification) or C2DM (Cloud to Device Message), you must have a native application which must be downloaded through the online store.
在 OS X v10.9及更高版本中,您可以通过使用苹果推送通知服务(APN)将 OS X 网站推送通知从您的 Web 服务器直接发送给 OS X 用户。不要与本地通知混淆,推送通知可以到达你的用户,无论你的网站或他们的网页浏览器是打开的..。
为了将推送通知集成到您的网站中,您首先要提供一个允许用户选择接收通知的界面。如果用户同意,Safari 会联系您的网站,以推送包的形式请求其凭证。推送包还包含通过 OS X 使用的通知资产和用于与您配置的 Web 服务进行通信的数据。如果推送包是有效的,你会在设备上收到一个用户唯一标识符,称为设备令牌。当您将此设备令牌与您的消息或有效负载的组合发送给 APN 时,用户将收到通知。
而 not yet supported on iOS(从 iOS10开始) ,网站可以通过 推送 API向 Firefox 和 Chrome (桌面/Android)发送推送通知。
PushAPI 与旧的 网上通知结合使用以显示消息。其优势在于,即使用户没有浏览你的网站,推送 API 也允许发送通知,因为它们是建立在服务工作者(通过浏览器注册的脚本,可以在后台执行,即使用户已经离开你的网站)之上的。
发送通知的过程涉及以下方面:
a user visits your website (must be secured over HTTPS): you ask permission to display push notifications and you register a service worker (a script that will be executed when a push notification is received)
如果用户已授予权限,则可以读取应该发送到服务器并存储的设备令牌(端点)
now you can send notifications to the user: your server makes an HTTP POST request to the endpoint (which is an URL that contains the device token). The server which receives the request is owned by the browser manufacturer (e.g. Google, Mozilla): the browser is constantly connected to it and can read the incoming notifications.
The Push API is currently supported on desktop and Android by 铬合金, 火狐 and 歌剧.
You can also send push notifications to Apple / 旅行 desktop using APNs. The approach is similar, but with many complications (apple developer certificates, push packages, low-level TCP connection to APNs).
If you want to implement the push notifications by yourself start with these tutorials: