AWS SNSを使うと比較的に簡単にプッシュ通知を実現できるんだけど、通知と同時に音をならしたり、バッジを設定しようとすると、JSON形式でメッセージを送る必要がある。
デフォルト音は以下の引用を参考にするとだせるが、あとは、バッジの数の設定例がまだよくわからない。
以下引用です。
JSON Publish 例
- {
- "default": "<enter your message here>",
- "email": "<enter your message here>",
- "sqs": "<enter your message here>",
- "http": "<enter your message here>",
- "https": "<enter your message here>",
- "sms": "<enter your message here>",
- "APNS": "{\"aps\":{\"alert\": \"<message>\",\"sound\":\"default\"} }",
- "APNS_SANDBOX": "{\"aps\":{\"alert\": \"<message>\",\"sound\":\"default\"} }",
- "GCM": "{ \"data\": { \"message\": \"<message>\" } }",
- "ADM": "{ \"data\": { \"message\": \"<message>\" } }"
- }
APNS だと sound が使える。
追記(2014/11/04)
registerForRemoteNotificationTypes: is not supported in iOS 8.0 and later.
iOS8よりregisterForRemoteNotificationTypesが使えなくなった。
ターゲットがiOS7でも動作しないため、iOSのバージョンを判定した上で対応する必要あり。
/* iOS8より、registerForRemoteNotificationTypesは、使えない。
[[UIApplication sharedApplication]registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
return YES;
*/
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
else
{
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
}
return YES;