Apple推播通知服務

Apple 推送通知服务（，）是苹果公司于2009年6月17日随iOS 3推出的一项服务。它通过长连接推送技术从第三方应用向苹果设备提供推送，通知中可能包括标记、声音、提醒/横幅。在iOS 5中，通知中心加强了推送和本地通知的用户体验。Apple 推送通知服务也以API的形式添加到了Mac OS X Lion（10.7）中供开发者使用，并在OS X 10.8 “Mountain Lion”中加以改进成为通知中心。

在Mac OS X Lion上，应用也可以使用与iOS相同的API来向Mac OS X上的程序推送信息。OS X Mountain Lion发布后，用户可以通过通知中心收取推送通知。如果推送信息时应用并未运行，则会有数字标记出现且应用并会被添加至dock中（直到标记被清除）来提醒用户。

Mac OS X 服务器使用 Apple 推送通知服务向联网用户推送服务器邮件、日历和联系信息。像是iPhone一类的设备和邮件、日历一类的应用都能收到来自 Mac OS X 服务器的推送通知。

使用 Apple 推送通知服务推送单条通知的体积最大为 256 字节。

历史
苹果公司于2008年6月9日宣布推出这项服务，原定于当年 9 月发布；正如斯科特·福斯特尔在2009年3月17日的 iOS 3.0 预览活动上所说，由于 APNs 的发布据称引起了"压倒性"的反响，出于可扩展性目的，苹果公司决定重组 APNs，从而推迟了这项服务的推出。在这两次活动中，福斯特尔表示，推送技术比后台进程（用于拉取技术）推送通知更节省电量。

APNs 于2009年6月17日与 iOS 3.0 一起首次推出。iOS 5.0 的发布包含了一个通知中心，增加了在一个地方接收和读取本地通知的支持。

APNs 还作为 API 添加到 Mac OS X 10.7（"Lion"）中，这样开发人员就可以开始更新他们的第三方应用程序并开始使用该服务。后来，OS X 10.8（"Mountain Lion"）通过引入通知中心得到了改进。与 iOS 5.0 一样，这一改进允许用户在一个位置管理和阅读收到的通知。OS X 10.9（"Mavericks"）版本包含 Safari 7.0，该版本增加了对接受和接收来自用户授权网站的 APNs 通知的支持。

2023年12月，有关通过 APNs 发送推送通知的潜在隐私和监控漏洞引起了关注。美国参议员罗恩·怀登在致司法部的一封信中透露，美国政府和外国执法部门都可能要求苹果公司提供与推送通知相关的用户数据。

技术细节
通过二进制接口发送通知的有效载荷在2014年从256字节增加到2千字节。2015年12月，苹果发布了一个新的HTTP/2 API，取代了原先的二进制接口。使用HTTP/2 API发送通知的最大有效载荷为4千字节。苹果在2021年3月底关闭了原先的二进制接口。

APNs 的HTTP/2接口使用了TCP 443端口作为主要通信端口。当443接口的外向访问被防火墙阻断，开发者也可以使用TCP 2197端口代替。

参见
 iMessage
 FaceTime
 Firebase云消息传递


 Push email
 Windows推送通知服务

参考资料

外部链接
 Notifications for Developers - Apple Developer
 使用 iPhone、iPad 或 iPod touch 上的“通知”

Category:苹果公司軟體
Category:IOS
Category:MacOS
Category:移动技术