APNsプッシュ通知を利用するネイティブアプリケーションを開発するための事前準備として以下を行ってください。
詳細は、iOS Develoepr Center内を参照してください。
APNsプッシュ通知を利用するネイティブアプリケーション向けのAPIはObjective-Cで提供します。
<製品インストールフォルダー>\development\ios\push\handler\FJPHandlerLib.1.0.zip
/opt/FJSVimsrv/development/ios/push/handler/FJPHandlerLib.1.0.zip
APNsプッシュ通知を利用するネイティブアプリケーションの開発には、以下の作業が必要です。
プッシュハンドラに渡すパラメータを、プッシュクライアント設定ファイル(push.plist)に設定します。プッシュクライアント設定ファイルについては、付録G プッシュクライアント設定ファイルを参照してください。
プッシュクライアント設定ファイル情報は、プッシュハンドラを利用する前に設定してください。
以下はプッシュハンドラ初期化処理の例です。
return UIApplicationMain(argc, argv,NSStringFromClass([FJPApplication class]),
NSStringFromClass([XXXAppDelegate class]));
@interface XXXAppDelegate : FJPAppDelegate
...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[super application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions];
// APNsにリモート通知を要求
if ((floor(NSFoundationVersionNumber)) <= NSFoundationVersionNumber_iOS_7_1) { // iOS7の場合
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge
| UIRemoteNotificationTypeSound
| UIRemoteNotificationTypeAlert)];
} else { // iOS8からの場合
UIUserNotificationSettings* notificationSettings =
[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound
| UIUserNotificationTypeAlert
| UIUserNotificationTypeBadge)
categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
注) [UIAppliaction registerForRemoteNotificationType:]を呼び出すとAPNsに対してデバイストークンが要求され、IMAPSサーバにデバイストークンが登録されます。APNsから返されるデバイストークンが変更される可能性があるため、プッシュ機能の利用の際は定期的に呼び出してください。
//@interface XXXViewController : UIViewController
@interface XXXViewController : FJPViewController
…
UIViewController以外の画面で構成されているユーザーアプリケーションにおいても、フォアグラウンド時のAPNsプッシュ通知のダイアログ表示を可能にする場合は、以下のように変更してください。
XXXViewController.h(ヘッダファイル側)】
// FJPViewControllerProtocolを実装します。
//@interface XXXViewController : UINavigationViewController
@interface XXXViewController : UINavigationViewController<FJPViewControllerProtocol>…
…
【XXXViewController.m(実装ファイル側】
//実装例(ダイアログを表示させる場合)
- (BOOL)isShowOnForeground
{
return YES;
}
isShowOnForeground関数を実装し、最前面時のプッシュ通知でダイアログを表示させる場合はYESを返します。
注) isShowOnForeground関数が実装されていない場合、また、FJPViewControllerProtocolが実装されていない場合は、最前面時にプッシュ通知されてもダイアログは表示されません。
ログ出力を行う場合、7.5.5 ログ出力のカスタマイズを参照してください。
認証の設定は、7.5.6 認証クラスの定義を参照してください。
拡張データを指定する場合は、7.5.7 拡張データの指定の指定を参照してください。
エラー通知受け取りを行う場合、7.5.10 APNsプッシュの処理結果受け取りを参照してください。
参考
APNsプッシュハンドラ初期化処理(FJPAppDelegate)では、APNsとの通信とIMAPSサーバとの通信を伴います。そのため、開発中に以下の環境でAPNsプッシュの動作確認を行いたい場合、「モバイルデータ通信」と「WiFi」をONにしておくことで可能となります。
・IMAPSサーバがイントラネットに配置されており、イントラネット内WiFiで接続する環境
・さらに、イントラネット内からAPNsへのアクセスが(ファイアウォールなどで)遮断される環境