Вы хотите прочитать Обработка локальных и удаленных уведомлений
В основном в своем делегате приложения вы хотите реализовать:
- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
и
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
И обработать launchOptions / userInfo для данных уведомления.
Как я обычно обрабатываю данные:
- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSDictionary* userInfo =
[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (userInfo) {
[self processRemoteNotification:userInfo];
}
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
[self processRemoteNotification:userInfo];
}
Формат для userInfo задокументирован УведомлениеПолезная нагрузка section.
например, клавиша "aps" даст вам другой NSDictionary, а затем поиск клавиши "alert" выдаст вам сообщение с предупреждением, которое было отображено.Кроме того, все пользовательские данные, которые вы отправляете в полезной нагрузке JSON, также будут там.
NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];
NSString *alertMsg = @"";
NSString *badge = @"";
NSString *sound = @"";
NSString *custom = @"";
if( [apsInfo objectForKey:@"alert"] != NULL)
{
alertMsg = [apsInfo objectForKey:@"alert"];
}
if( [apsInfo objectForKey:@"badge"] != NULL)
{
badge = [apsInfo objectForKey:@"badge"];
}
if( [apsInfo objectForKey:@"sound"] != NULL)
{
sound = [apsInfo objectForKey:@"sound"];
}
if( [userInfo objectForKey:@"Custom"] != NULL)
{
custom = [userInfo objectForKey:@"Custom"];
}