Как сделать интерактивные уведомления в приложении iOS 8?

В iOS 8 появилась новая функция уведомлений, с помощью которой вы можете спуститься вниз и выполнить действие. Например, когда вы получаете сообщение от iMessage и пролистываете уведомление, вы можете ввести быстрый ответ.

Я просматривал документы о том, как это сделать, но не смог найти. Кто-нибудь знает, где я могу узнать, как это сделать/где это находится в документах?


person Joseph    schedule 05.09.2014    source источник
comment
Похоже, вы не можете в iOS 8, но можете в iOS 9: fancypixel.github.io/blog/2015/06/11/   -  person rmp251    schedule 02.10.2015


Ответы (3)


Взгляни на

https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/NotificationCenter.html

для получения подробной информации о виджетах в центре уведомлений, а также

https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIMutableUserNotificationCategory_class/index.html#//apple_ref/doc/uid/TP40014610

где UIMutableUserNotification — это то, что вы ищете.

Обратите внимание, что эта документация является предварительной версией, поэтому ее можно изменить при каждом запуске производства.

person kevinl    schedule 05.09.2014
comment
мне кажется не разрешен быстрый ответ, только действия кнопки - person dwery; 18.01.2015

Примечание. Это шаг 1.

NSString * const NotificationCategoryIdent  = @"ACTIONABLE";
NSString * const NotificationActionOneIdent = @"ACTION_ONE";
NSString * const NotificationActionTwoIdent = @"ACTION_TWO";

- (void)registerForNotification {

UIMutableUserNotificationAction *action1;
action1 = [[UIMutableUserNotificationAction alloc] init];
[action1 setActivationMode:UIUserNotificationActivationModeBackground];
[action1 setTitle:@"Action 1"];
[action1 setIdentifier:NotificationActionOneIdent];
[action1 setDestructive:NO];
[action1 setAuthenticationRequired:NO];

UIMutableUserNotificationAction *action2;
action2 = [[UIMutableUserNotificationAction alloc] init];
[action2 setActivationMode:UIUserNotificationActivationModeBackground];
[action2 setTitle:@"Action 2"];
[action2 setIdentifier:NotificationActionTwoIdent];
[action2 setDestructive:NO];
[action2 setAuthenticationRequired:NO];

UIMutableUserNotificationCategory *actionCategory;
actionCategory = [[UIMutableUserNotificationCategory alloc] init];
[actionCategory setIdentifier:NotificationCategoryIdent];
[actionCategory setActions:@[action1, action2] 
                forContext:UIUserNotificationActionContextDefault];

NSSet *categories = [NSSet setWithObject:actionCategory];
UIUserNotificationType types = (UIUserNotificationTypeAlert|
                                UIUserNotificationTypeSound|
                                UIUserNotificationTypeBadge);

UIUserNotificationSettings *settings;
settings = [UIUserNotificationSettings settingsForTypes:types
                                             categories:categories];

[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}

Примечание. Это шаг 2.

- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler {

if ([identifier isEqualToString:NotificationActionOneIdent]) {

    NSLog(@"You chose action 1.");
}
else if ([identifier isEqualToString:NotificationActionTwoIdent]) {   

    NSLog(@"You chose action 2.");
}    
if (completionHandler) {

    completionHandler();
}
}

Примечание. Если вы хотите узнать больше, перейдите по этой ссылке. https://nrj.io/simple-interactive-notifications-in-ios- 8/

person Anand Nanavaty    schedule 05.07.2016

Я не беру на себя ответственность за этот ответ, я только что нашел его в Интернете, но он был очень полезен для моего понимания интерактивных уведомлений iOS8:

http://docs.appcelerator.com/titanium/3.0/#!/guide/iOS_Interactive_Notifications-section-40930452_iOSInteractiveNotifications-CreateaNotificationAction

person Jordan Walsh    schedule 10.12.2014