如何在iOS 8应用程序中制作交互式通知?

时间:2014-09-05 20:33:14

标签: ios xcode notifications push-notification ios8

在iOS 8中,通知有一项新功能,您可以在其中向下滑动并执行操作。例如,当您从iMessage收到消息并向下滑动通知时,您可以输入快速响应。

我一直在查看有关如何执行此操作的文档,但我找不到它。有谁知道我在哪里可以找到这个/它在docs中的位置?

3 个答案:

答案 0 :(得分:3)

注意: - 这是第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/

答案 1 :(得分:0)

看看

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是您正在寻找的。

请注意,此文档是预发布的,因此无论何时推送产品都可以更改。

答案 2 :(得分:-1)

我不赞成这个答案,我刚刚在网上找到它,但它对帮助我理解iOS8互动通知非常有用:

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