Apple Push Notification service: Difference between revisions

Content deleted Content added
mNo edit summary
No edit summary
 
(46 intermediate revisions by 33 users not shown)
Line 1:
{{short description|Notification service created by Apple}}
{{Use mdy dates|date=October 2013}}
{{Infobox software platform
| name = Apple Push Notification Serviceservice
| icon =
| image = APNS Logo.png
| caption = Apple Push Notification Service logo.Logo
| developer = [[Apple Inc.]]
| target = [[iOSiPhone OS 3.0]] and newer, [[macOSOS X Lion]] and newer, [[Safari (web browser)|Safari 7.0]] and newer
| editor =
| runtime =
Line 17 ⟶ 18:
}}
 
'''Apple Push Notification Serviceservice''' (commonly'''APNs'''), referredpreviously toknown as '''Apple NotificationPush Service''' or ('''APNsAPS'''), is a platform [[notification service]] created by [[Apple Inc.]] that enables third party application developers to send notification data to applications installed on Apple devices. The notification information sent can include badges, sounds, [[Newsstand (application)|newsstand]] updates, or custom text alerts. It was first launched with [[IPhone_OS_3|iOS (Apple)|iOS3]] 3.0 on June 17, 2009. APNs support for local applications was later added to the [[Mac OS X]] [[Application programming interface|API]] beginning with the release of [[Mac OS X Lion|Mac OS X 10.7 ("Lion")]]. Support for website notifications was later added with the release of [[OS X Mavericks|Mac OS X 10.9 ("Mavericks")]].
 
==History==
Apple announced the service on June 9, 2008 with an original stated release for that September; however, as stated by [[Scott Forstall]] at the iOS 3.0 preview event on March 17, 2009, the rollout was delayed after a decision to restructure the APNs for scalability purposes due to the allegedly "overwhelming" response to the announcement of the APNs. At both events, Forstall stated that [[push notificationsnotification]]s better conserve [[Battery (electricity)|battery]] than [[background process]]es (which are used in [[pull technology]]) for receiving notifications.<ref>[http{{Cite web |title=iPhone push notification service for devs announced |url=https://www.engadget.com/2008/-06/-09/-iphone-push-notification-service-for-devs-announced/.html ''iPhone|access-date=2023-07-06 push|website=Engadget notification service|date=June for9, devs2008 announced''], [[Engadget]]|language=en-US}}</ref>
 
APNs was first launched together with iOS 3.0 on June 17, 2009.<ref name="appledev">{{cite web|url=https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html|title=Apple Push Notification Service|publisher=[[Apple Inc.]]|date=March 21, 2016|accessdateaccess-date=April 8, 2016}}</ref> The release of iOS 5.0 included a [[Notification Center]], adding support for receiving and reading local notifications in a single place.<ref name="GigaomiOS5">{{cite webnews | url=https://gigaomwww.macrumors.com/2011/10/12/apple-releases-ios-5-notifications-andwith-notification-center-imessage-twitter-and-more/ | title=Apple Releases iOS 5: Notifications andwith Notification Center, iMessage, Twitter, and More |publisher first=Eric | last=Slivka | work=[[GigaomMacRumors]] | date=October 12, 2011|accessdate=April 8, 2016}}</ref>
 
APNs was also added as an API to Mac OS X 10.7 ("Lion") so that developers could begin updating their third-party applications and start utilizing the service.<ref name="OSXLionReleaseDev">{{cite web|url=https://developer.apple.com/library/mac/releasenotes/MacOSX/WhatsNewInOSX/Articles/MacOSX10_7.html|title=OS X Lion v10.7|publisher=[[Apple Inc.]]|date=December 8, 2015|accessdateaccess-date=April 8, 2016}}</ref><ref name="TN2265">{{cite web|url=https://developer.apple.com/library/mac/technotes/tn2265/_index.html|title=Troubleshooting|publisher=[[Apple Inc.]]|date=October 1, 2014|accessdateaccess-date=April 8, 2016}}</ref> Support was later improved in [[OS X Mountain Lion|OS X 10.8 ("Mountain Lion")]] with the introduction of a Notification Center. As with iOS 5.0, the improvement allowed users to manage and read their received notifications in a single ___location.<ref name="AppleMountainLionPR">{{cite web|url=httphttps://www.apple.com/pr/library/2012/02/16Apple-Releases-OS-X-Mountain-Lion-Developer-Preview-with-Over-100-New-Features.html|title=Apple Releases OS X Mountain Lion Developer Preview with Over 100 New Features|publisher=[[Apple Inc.]]|date=February 16, 2012|accessdateaccess-date=April 8, 2016}}</ref><ref name="9to5">{{cite web|url=http://9to5mac.com/2012/06/04/os-x-mountain-lion-features-coming-in-ios-6-notification-center-do-not-disturb-toggle-safari-icloud-tabs-and-mail-vips/|title=OS X Mountain Lion features coming in iOS 6: Notification Center ‘Do'Do Not Disturb’Disturb' toggle, Safari iCloud Tabs, and Mail VIPs|publisher=[[Apple_community#9to5Mac|9to5Mac]]|date=June 4, 2012|accessdateaccess-date=April 8, 2016}}</ref> The release of [[OS X Mavericks|OS X 10.9 ("Mavericks")]] included [[Safari (web browser)|Safari]] 7.0, which added support for accepting and receiving APNs notifications from websites that the user granted permission to.<ref name="AppleInsiderSafari7">{{cite web|url=http://appleinsider.com/articles/13/06/28/safari-70-to-bring-web-notifications-to-os-x-mavericks|title=Safari 7.0 to bring web notifications to OS X Mavericks|publisher=[[Appleinsider]]|date=June 28, 2013|accessdateaccess-date=April 8, 2016}}</ref><ref name="NiemanlabWebPush">{{cite web|url=http://www.niemanlab.org/2013/06/now-websites-can-send-push-notifications-not-just-apps/|title=Now websites can send push notifications — not just apps|publisher=[[Niemanlab]]|date=June 10, 2013|accessdateaccess-date=April 8, 2016}}</ref>
 
In December 2023, concerns arose regarding a potential privacy and surveillance loopholes involving push notifications delivered through APNs. [[Ron Wyden|US Senator Ron Wyden]] revealed, through a letter to the [[Department of Justice]], that both the US government and foreign law enforcement could demand user data from Apple related to push notifications.<ref>{{cite magazine |last1=Couts |first1=Andrew |title=Police Can Spy on Your iOS and Android Push Notifications |url=https://www.wired.com/story/apple-google-push-notification-surveillance/ |magazine=Wired |access-date=5 April 2024}}</ref>
 
==Technical details==
In 2014, the maximum size allowed for a notification payload sent through the binary interface was increased from 256 bytes to 2 kilobytes. In December 2015, a new [[HTTP/2]] provider API was released by Apple, effectively replacing the now-legacy binary interface. The maximum notification payload size allowed using the HTTP/2 API is 4 kilobytes. <ref>{{Cite web|url=https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html|title=Local and Remote Notification Programming Guide: Creating the Remote Notification Payload|publisher=[[Apple Inc.]]|date=October 24, 2016|accessdateaccess-date=November 29, 2016}}</ref> Apple shut down the legacy binary API at the end of March 2021.<ref>{{Cite web |title=Updated APNs provider API deadline - Latest News - Apple Developer |url=https://developer.apple.com/news/?id=c88acm2b |access-date=2022-12-08 |website=developer.apple.com |language=en}}</ref>
Mac OS X Server uses APNs to push the server's mail, calendar and contacts services to network users. Devices such as the iPhone and applications like Mail and Calendar on Mac can receive push notifications from Mac OS X server. {{cn|date=April 2016}}
 
Beginning with iOS 8.0, the maximum size allowed for a notification payload was increased to 2 kilobytes; notification payloads that exceed this limit are rejected by APNs servers. Versions of iOS that are older than 8.0, as well as versions of Mac OS X, have a maximum payload size of 256 bytes; notification payloads that exceed this limit are not sent to these Operating Systems. {{cn|date=April 2016}}
 
In 2014, the maximum size allowed for a notification payload sent through the binary interface was increased from 256 bytes to 2 kilobytes. In December 2015, a new HTTP/2 provider API was released by Apple, effectively replacing the now-legacy binary interface. The maximum notification payload size allowed using the HTTP/2 API is 4 kilobytes. <ref>{{Cite web|url=https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html|title=Local and Remote Notification Programming Guide: Creating the Remote Notification Payload|publisher=[[Apple Inc.]]|date=October 24, 2016|accessdate=November 29, 2016}}</ref>
 
The HTTP/2 provider for APNs uses TCP port 443 as the main port of communication, but developers are also allowed to use TCP port 2197 if outbound access to port 443 is blocked by firewalls.<ref>{{Cite web |title=Apple Developer Documentation |url=https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns |access-date=2022-12-08 |website=developer.apple.com}}</ref>
On October 22, 2014, Apple announced that it would cease all support for SSL 3.0 on October 29, 2014 due to the [[POODLE]] attack that gained public attention shortly before. After this date, developers were required to use the TLS protocol to send notification using the APNs.<ref>{{Cite web|url = https://developer.apple.com/news/?id=10222014a|title = Update to APNs for SSL 3.0|date = October 22, 2014|accessdate = |publisher = [[Apple Inc.]]}}</ref>
 
==See also==
* [[iMessage]]
* [[FaceTime]]
* [[GoogleFirebase Cloud Messaging]]
* [[SQL Server Notification Services]]
* [[Microsoft Notification Protocol]]
Line 55 ⟶ 54:
{{Mac OS X}}
 
[[Category:Apple Inc. services|Push Notification Service]]
[[Category:IOS (Apple)]]
[[Category:MacOS]]
[[Category:Push technology]]