スキップしてメイン コンテンツに移動

投稿

4月, 2012の投稿を表示しています

AIR for iOSでAPNsをサポートするためのTips

【追記】AIR 3.4から正式にAPNsによるPush Notificationがサポートされました。この記事で紹介しているやり方だと恐らく不具合が生じる可能性がありますので標準のAPIを使うようにしてください。詳しくは プッシュ通知 の使用を見てください。 AIRのアプリでAPNsをサポートする必要があったのでANEで実装してみました。 既に実装した人はいるようなのですが( 参考 )ソースがなかったので自作しました。 iOSアプリでAPNsを使うには大雑把に以下の実装が必要です。 UIApplicationのregisterForRemoteNotificationTypes:メソッドを呼び出す。端末をAPNsに登録します AppDelegateに以下のメソッドを実装 application:didRegisterForRemoteNotificationsWithDeviceToken: APNsの登録に成功した場合の処理 application:didFailToRegisterForRemoteNotificationsWithError: APNsの登録に失敗した場合の処理 application:didFinishLaunchingWithOptions: Remote通知に含まれる情報を読み取ります(アプリ起動時) application:didReceiveRemoteNotification: Remote通知に含まれる情報を読み取ります(アプリ起動中) これをANEで実装する場合、いろいろ試して下のような形で実装できました。 UIApplicationのregisterForRemoteNotificationTypes: メソッドを呼び出す 普通にANEの関数内で呼び出します。UIApplicationのインスタンスは [UIApplication sharedApplication] で取れます。UIApplicationはSingletonのようです。 UIApplicationDelegateにPush関連のメソッドを実装 こいつが結構くせ者でしてAIRのRuntimeが既にDelegateを実装してしまっているのでむやみに取り替えられません。また、ソースもありません...