Как управлять уведомлением, когда пользователи нажимают на значок - PullRequest
6 голосов
/ 31 декабря 2011

У меня вопрос к уведомлениям. Через несколько часов, чтобы узнать, как реализовать push-уведомления на iPhone, теперь он приходит!

Как мне управлять пользователями, которые нажимают на значок или нажимают на просмотр в предупреждении? Что происходит, когда пользователи нажимают там?

Я пытался отправить мне уведомление и номер на значке приложения с шагом в трамплине. Каким образом, нажав там, можно показать пользовательский интерфейс для управления полученным уведомлением и показать сообщение прочитанным и непрочитанным?

Есть ли учебник для него? Я хочу сохранить все сообщения внутри uitableview.

1 Ответ

34 голосов
/ 31 декабря 2011

Вы хотите прочитать Обработка локальных и удаленных уведомлений

В основном в своем делегате приложения вы хотите реализовать:

- (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"];
}
...