APNsプッシュ通知を利用するネイティブアプリケーションを開発するための事前準備として以下を行ってください。
Mac OSXのキーチェーンサービス上でCSRを作成してください。
iOS Develper Centerに、APNsを利用するアプリ情報を登録してください。
APNsを利用するためのSSL証明書を発行してください。
APNsを利用するためのプロビジョニングファイルを作成してください。
APNsを利用するために発行したSSL証明書をダウンロードし、Mac OSXのキーチェーンサービス上で作成したCSRの秘密鍵と共にPKCS#12形式の証明書を作成してください。
プロビジョニングファイルをxcodeに取り込み、iOSアプリをビルドしてください。
PKCS#12をプッシュサーバに登録してください。
詳細は、iOS Develoepr Center内を参照してください。
APNsプッシュ通知を利用するネイティブアプリケーション向けのAPIはObjective-Cで提供します。
IMAPS向けのネイティブアプリケーションの開発環境を準備後、以下からzipファイルを取得し、Mac上で展開してください。
Windows版サーバの場合:
<製品インストールフォルダー>\development\ios\push\handler\FJPHandlerLib.1.0.zip
Linux版サーバの場合:
/opt/FJSVimsrv/development/ios/push/handler/FJPHandlerLib.1.0.zip
APNsプッシュ通知を利用するネイティブアプリケーションの開発には、以下の作業が必要です。
プッシュクライアント設定ファイルの作成
プッシュクライアント設定ファイル設定、プッシュハンドラ初期化処理の作成
1. プッシュクライアント設定ファイルの作成
プッシュハンドラに渡すパラメータを、プッシュクライアント設定ファイル(push.plist)に設定します。プッシュクライアント設定ファイルについては、「付録G プッシュクライアント設定ファイル」を参照してください。
2. プッシュクライアント設定ファイル設定、プッシュハンドラ初期化処理の作成
プッシュクライアント設定ファイル情報は、プッシュハンドラを利用する前に設定してください。
以下はプッシュハンドラ初期化処理の例です。
main.mのmain関数で、ネイティブ層で利用するUIApplicationクラスをプッシュハンドラのクラスに変更
return UIApplicationMain(argc, argv,
NSStringFromClass([FJPApplication class]),
NSStringFromClass([XXXAppDelegate class]));
XXXAppDelegateクラスの親クラスをプッシュハンドラに変更
@interface XXXAppDelegate : FJPAppDelegate
...
XXXAppDelegateクラスの初回起動時(application:didFinishLaunchingWithOptions:)等で、APNsにリモート通知を要求する。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [super application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions]; // APNsにリモート通知を要求
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge
| UIRemoteNotificationTypeSound
| UIRemoteNotificationTypeAlert)];
注) [UIAppliaction registerForRemoteNotificationType:]を呼び出すとAPNsに対してデバイストークンが要求され、IMAPSサーバにデバイストークンが登録されます。APNsから返されるデバイストークンが変更される可能性があるため、プッシュ機能の利用の際は定期的に呼び出してください。
XXXViewControllerクラスの親クラスをプッシュ部品に変更
//@interface XXXViewController : UIViewController @interface XXXViewController : FJPViewController …
ログ出力を行う場合、「7.5.5 ログ出力のカスタマイズ」を参照してください。
認証の設定は、「7.5.6 認証クラスの定義」を参照してください。
拡張データを指定する場合は、「7.5.7 拡張データの指定」の指定を参照してください。
エラー通知受け取りを行う場合、「7.5.10 APNsプッシュの処理結果受け取り」を参照してください。
参考
APNsプッシュハンドラ初期化処理(FJPAppDelegate)では、APNsとの通信とIMAPSサーバとの通信を伴います。そのため、開発中に以下の環境でAPNsプッシュの動作確認を行いたい場合、「モバイルデータ通信」と「WiFi」をONにしておくことで可能となります。
・IMAPSサーバがイントラネットに配置されており、イントラネット内WiFiで接続する環境
・さらに、イントラネット内からAPNsへのアクセスが(ファイアウォール等で)遮断される環境