Web 应用程序如何向 iOS 设备发送推送通知?

我正在开发一个网络应用程序。当有新内容时,我如何向 iOS 用户发送推送通知?

157908 次浏览

不,只有本地 iOS 应用程序支持推送通知。

UPDATE:
Mac OS X 10.9和 Safari 7网站现在也可以发送推送通知,但这仍然不适用于 iOS。 阅读 网站通知编程指南。也检查 WWDC 2013年第614届会议

不,网络应用程序没有办法接收推送通知。你能做的就是把你的 webapp 打包成一个本地应用,它有推送通知功能。

更具体地说,为了让 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.

看看 Peter Hosey 提供的链接:

您可以使用 HTML5 Websockets 来引入您自己的推送消息:

"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.

如果您不想创建自己的本地应用程序: https://pushover.net/,可以使用 Pushover

查看 Xtify Web 推送通知。http://getreactor.xtify.com/这个工具允许你将内容推送到网页上,目标访问者以及基于浏览器 DOM 事件的触发消息。它是专门为手机设计的。

事实上。.这对你来说是全新的。.在最新版本的 OS X (Mavericks)上,你可以通过 可以将推送通知从网页发送到桌面。但是根据文件记载,不是 iPhone:

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

目前,苹果公司计划允许两种推送通知: OS X 网站推送通知 及本地通知。

这里明显的障碍是,它不能在 PC 上工作,也不允许你做安卓推送通知。

此外,你实际上可以与版本,如雪豹,从一个网站发送推送通知,只要该网站是开放和活跃的。新的 Mavericks 操作系统将允许推送通知,即使网站没有打开,假设你已经给予许可,该网站发送推送通知。

从苹果的嘴里说出:

在 OS X v10.9及更高版本中,您可以通过使用苹果推送通知服务(APN)将 OS X 网站推送通知从您的 Web 服务器直接发送给 OS X 用户。不要与本地通知混淆,推送通知可以到达你的用户,无论你的网站或他们的网页浏览器是打开的..。

为了将推送通知集成到您的网站中,您首先要提供一个允许用户选择接收通知的界面。如果用户同意,Safari 会联系您的网站,以推送包的形式请求其凭证。推送包还包含通过 OS X 使用的通知资产和用于与您配置的 Web 服务进行通信的数据。如果推送包是有效的,你会在设备上收到一个用户唯一标识符,称为设备令牌。当您将此设备令牌与您的消息或有效负载的组合发送给 APN 时,用户将收到通知。

在收到通知后,用户可以点击该通知,在用户的默认浏览器中打开自己选择的网页。

注意: 如果你需要复习 APN,请阅读本地和推送通知编程指南中的“苹果推送通知服务”一章。尽管该文档是特定于 iOS 和 OSX 推送通知的,但推送通知服务的范例仍然适用。

W3C 于2010年成立了一个工作组,负责实施通知:
Http://www.w3.org/2010/web-notifications/

这个工作组开发的应用程序接口将这些机制公开给网络应用程序ーー例如,创建 Webmail 客户端和即时通讯客户端的网络开发人员可以将他们的网络应用程序行为与终端用户操作系统的通知功能更紧密地结合起来。

最后,结果就像一个糟糕的笑话,因为它只有在特定的网站是开放的时候才起作用: Http://alxgbsn.co.uk/notify.js/

我认为他们没有实现添加推送网址的可能性,这样浏览器就可以在后台运行时请求通知——最重要的是——如果所有标签页都已关闭。

Google Chrome 现在支持推送通知的 W3C 标准。

Http://www.w3.org/tr/push-api/

not yet supported on iOS(从 iOS10开始) ,网站可以通过 推送 API向 Firefox 和 Chrome (桌面/Android)发送推送通知。

PushAPI 与旧的 网上通知结合使用以显示消息。其优势在于,即使用户没有浏览你的网站,推送 API 也允许发送通知,因为它们是建立在服务工作者(通过浏览器注册的脚本,可以在后台执行,即使用户已经离开你的网站)之上的。

发送通知的过程涉及以下方面:

  1. 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)
  2. 如果用户已授予权限,则可以读取应该发送到服务器并存储的设备令牌(端点)
  3. 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.
  4. 当用户浏览器收到通知时,将执行服务工作者,该服务工作者负责管理事件、从服务器检索通知数据并将通知显示给用户

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:

If you are looking for a drop in solution I would suggest 手推板, which is a service I have built.

更新 (2017年9月) : 苹果已经开始为 WebKit (地位)开发服务工作者。由于服务工作者是网络推送的基础技术,这是一个很大的进步。

Pushshot 是一个很好的替代方案。

然而,用户需要有一个 Pushbullet 帐户和应用程序安装(iOS,Android)或插件安装(Chrome,Opera,Firefox 和 Windows)。

您可以通过创建一个 PushBullet 应用程序来使用 空气污染指数,并使用 oAuth2将应用程序的用户与 PushBullet 用户连接起来。

使用库会使它变得更容易,对于 PHP,我可以推荐使用 ivkos/Pushbullet-for-PHP