【发布时间】:2011-06-23 19:21:08
【问题描述】:
我正在开发一个网络应用程序。有新内容时如何向 iOS 用户发送推送通知?
【问题讨论】:
-
现在有什么通知?
-
您在搜索声音吗?然后,如果您想在手机锁定模式下发出声音通知;它的名字叫Specific Push。
标签: ios iphone web-applications apple-push-notifications
我正在开发一个网络应用程序。有新内容时如何向 iOS 用户发送推送通知?
【问题讨论】:
标签: ios iphone web-applications apple-push-notifications
更具体地说,为了让网络应用程序向移动设备(例如 iPhone)发送推送通知,移动设备必须已注册以接收特定应用程序的推送通知。推送通知的注册是通过本机应用程序完成的,并且只能通过本机应用程序执行。一旦原生应用注册了推送通知,它就可以将授权令牌发送到服务器,该授权令牌可以与用于配置原生客户端的证书一起使用,以将推送通知发送到移动设备。
正如另一个答案中所指定的,一个选项是将您的 Web 应用程序“包装”在本机应用程序中。这意味着您将创建一个本机应用程序,该应用程序基本上向显示您的 Web 应用程序的用户呈现 UIWebView(用于 iPhone 开发)。虽然这与本机浏览器的功能几乎相同,但您可以添加使用本机控件注册推送通知的功能。
查看 Apple 的推送通知文档会对您有所帮助,因为它提供了有关 iPhone 上推送消息功能的一些很好的信息。
请参阅 Peter Hosey 提供的这些链接:
【讨论】:
虽然iOS 尚不支持(自 iOS 10 起),但网站可以使用 Push API 向 Firefox 和 Chrome(桌面/Android)发送推送通知。
Push API 与旧的Web Notifications 结合使用来显示消息。优点是即使用户没有浏览您的网站,Push API 也允许发送通知,因为它们是基于 Service Worker(由浏览器注册的脚本,并且可以在稍后的时间在后台执行,即使在您的用户已离开您的网站)。
发送通知的过程涉及以下内容:
Chrome、Firefox 和 Opera 目前在 桌面和 Android 上支持 Push API。 p>
您还可以使用 APN 将推送通知发送到 Apple / Safari 桌面。方法类似,但有许多复杂性(苹果开发者证书、推送包、到 APN 的低级 TCP 连接)。
如果您想自己实现推送通知,请从以下教程开始:
如果您正在寻找解决方案,我建议您使用Pushpad,这是我建立的一项服务。
更新(2017 年 9 月):Apple 已开始为 WebKit (status) 开发服务工作者。由于 Service Worker 是 Web 推送的基础技术,因此这是向前迈出的一大步。
【讨论】:
不,只有原生 iOS 应用程序支持推送通知。
更新:
Mac OS X 10.9 和 Safari 7 网站现在也可以发送推送通知,但这仍然不适用于 iOS。
阅读Notification Programming Guide for Websites。另请查看WWDC 2013 Session 614。
【讨论】:
如果您不想创建自己的原生应用,可以使用 pushover:https://pushover.net/
【讨论】:
Google Chrome 现在支持推送通知的 W3C 标准。
【讨论】:
实际上.. 这是全新的提醒您.. 在最新版本的 OS X (Mavericks) 上,您 CAN 将推送通知从网页发送到桌面。但根据文档,不是 iPhone:
Note: This document pertains to OS X only. Notifications for websites do not appear on iOS.
目前 Apple 计划允许 2 种推送通知: OS X 网站推送通知 和本地通知。
这里的明显障碍是这在 PC 上不起作用,也不允许您进行 android 推送通知。
此外,您实际上可以使用与 Snow Leapord 一样旧的版本,从网站发送推送通知,只要该网站处于打开状态且处于活动状态。新的 Mavericks OS 将允许推送通知,即使该站点未打开,前提是您已授予该站点发送推送通知的权限。
来自苹果之口:
在 OS X v10.9 及更高版本中,您可以使用 Apple 推送通知服务 (APN) 从 Web 服务器直接向 OS X 用户发送 OS X 网站推送通知。不要与本地通知混淆,无论您的网站或其网络浏览器是否打开,推送通知都可以发送给您的用户……
要在您的网站中集成推送通知,您首先需要提供一个界面,允许用户选择接收通知。如果用户同意,Safari 会联系您的网站,以称为推送包的文件的形式请求其凭据。推送包还包含在整个 OS X 中使用的通知资产和用于与您配置的 Web 服务通信的数据。如果推送包有效,您会在设备上收到用户的唯一标识符,称为设备令牌。当您将此设备令牌和您的消息或有效负载的组合发送到 APN 时,用户会收到通知。
收到通知后,用户可以点击它在用户的默认浏览器中打开您选择的网页。
注意:如果您需要复习 APN,请阅读本地和推送通知编程指南中的“Apple 推送通知服务”一章。尽管该文档特定于 iOS 和 OS X 推送通知,但推送通知服务的范例仍然适用。
【讨论】:
不,Web 应用程序无法接收推送通知。您可以做的是将您的 web 应用程序包装到具有推送通知的本机应用程序中。
【讨论】:
W3C 于 2010 年成立了一个工作组来实施通知:
http://www.w3.org/2010/web-notifications/
该工作组开发的 API 将这些机制公开给 Web 应用程序,以便创建例如基于 Web 的电子邮件客户端和即时消息客户端的 Web 开发人员可以更紧密地集成他们的 Web 应用程序行为与通知功能最终用户的操作系统。
最后结果就像一个坏笑话,因为它只有在特定网站打开时才有效: http://alxgbsn.co.uk/notify.js/
我认为他们错过了实现添加推送 url 的可能性,以便浏览器能够在后台运行时请求通知 - 最重要的是 - 如果所有选项卡都已关闭。
【讨论】:
您可以使用 HTML5 Websockets 来引入您自己的推送消息。来自Wikipedia:
"对于客户端,WebSocket 将在 Firefox 4 中实现, Google Chrome 4、Opera 11 和 Safari 5,以及移动版 iOS 4.2 中的 Safari。 OS7 中的黑莓浏览器也支持 WebSockets。”
为此,您需要自己的提供商服务器将消息推送到客户端。
如果您想使用 APN(Apple 推送通知)或 C2DM(云到设备消息),您必须有一个必须通过在线商店下载的本机应用程序。
【讨论】:
Pushbullet 是一个很好的选择。
但是,用户需要拥有 Pushbullet 帐户并安装应用程序(iOS、Android)或插件(Chrome、Opera、Firefox 和 Windows)。
您可以通过创建 Pushbullet 应用程序来使用 API,并使用 oAuth2 将应用程序的用户连接到 Pushbullet 用户。
使用库会更容易,对于 PHP,我可以推荐 ivkos/Pushbullet-for-PHP。
【讨论】:
查看 Xtify Web 推送通知。 http://getreactor.xtify.com/ 此工具允许您将内容推送到网页上并定位访问者以及基于浏览器 DOM 事件触发消息。它专为移动设备而设计。
【讨论】: