Wsparcie Apple Push Notification Service w aplikacji Adobe AIR na iOS

Wielką nieobecną w Adobe AIR dla iOS jest usługa Apple Push Notifications (APNs). Traktując to jako ciekawe wyzwanie postanowiłem spróbować dodać obsługę tej funkcjonalności iOS za pomocą natywnego rozszerzenia (native extension).
Nie przedłużając – udało się, chociaż nie było to tak trywialne jak stworzenie rozszerzenia MailComposer.

Rozszerzenie wraz z przykładową aplikacją można pobrać z GitHuba: https://github.com/pkoscierzynski/NativeAPNService

Aby wykorzysać APNs w swojej aplikacji należy uaktywnić tą usługę w Apple Developer portal i wygenerować certyfikaty developerskie i produkcyjne. Nie będę tego objaśniał – dużo lepiej zrobił to Matthijs Hollemans w tutorialu zamieszczonym na raywenderlich.com – polecam.
Apple Push Notification Services Tutorial: Part 1/2

W powyższym tutorialu zawarty jest kod PHP, który również wykorzystałem do swoich testów, także na pewno działa.

Kompilowanie samej aplikacji AIR 3.1 korzystającej z push notifications wymaga wypełnienia sekcji Entitlements w deskryptorze aplikacji. Należy tam umieścić treść analogiczną do tej znajdującej się w pliku Entitlements.plist znanego z Xcode.

Poniżej kilka screenów z samej testowej aplikacji i krótkie wideo pokazujące jej działanie.

Adobe AIR application descriptor. iPhone Entitlements section.

Apple push notifications in Adobe AIR iOS application from Piotr Koscierzynski on Vimeo.