iOS 8 通知操作按钮未显示
iOS 8 notification action button not displayed
我正在尝试发送带有操作按钮的本地通知。
通知没问题。但是不显示操作按钮。
我正在使用 Xcode 6.3.2 iPhone 6 iOS 8.2
发送通知
UIApplication *myapp = [UIApplication sharedApplication];
UILocalNotification *test = [[UILocalNotification alloc] init];
if(test) {
NSLog(@"Sending notification");
test.alertBody = @"jothi test alert";
test.alertTitle = @"kottapa";
test.soundName = UILocalNotificationDefaultSoundName;
test.alertAction = NSLocalizedString(@"View Details", nil);
test.category = @"MY_CATEGORY";
[myapp presentLocalNotificationNow:test];
}
在应用委托中 didFinishLaunchingWithOptions:
UIMutableUserNotificationAction *myAction =
[[UIMutableUserNotificationAction alloc] init];
myAction.identifier = @"MY_IDENTIFIER";
myAction.title = @"Test Action";
myAction.activationMode = UIUserNotificationActivationModeBackground;
myAction.destructive = NO;
myAction.authenticationRequired = NO;
//------------
// First create the category
UIMutableUserNotificationCategory *inviteCategory =
[[UIMutableUserNotificationCategory alloc] init];
// Identifier to include in your push payload and local notification
inviteCategory.identifier = @"MY_CATEGORY";
// Add the actions to the category and set the action context
[inviteCategory setActions:@[myAction]
forContext:UIUserNotificationActionContextDefault];
// Set the actions to present in a minimal context
[inviteCategory setActions:@[myAction]
forContext:UIUserNotificationActionContextMinimal];
NSSet *categories = [NSSet setWithObject:inviteCategory];
UIUserNotificationSettings *settings =
[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound
categories:categories];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
您的代码有效,您只需向左滑动通知即可看到操作按钮(或者将其下拉,如果它以横幅的形式从顶部呈现,当设备处于“已锁定)。
此外,我猜你已经这样做了,只是没有包含代码,为了处理用户选择的操作,你需要在你的应用委托中实现这个方法:
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification completionHandler:(void(^)())completionHandler
我正在尝试发送带有操作按钮的本地通知。 通知没问题。但是不显示操作按钮。 我正在使用 Xcode 6.3.2 iPhone 6 iOS 8.2
发送通知
UIApplication *myapp = [UIApplication sharedApplication];
UILocalNotification *test = [[UILocalNotification alloc] init];
if(test) {
NSLog(@"Sending notification");
test.alertBody = @"jothi test alert";
test.alertTitle = @"kottapa";
test.soundName = UILocalNotificationDefaultSoundName;
test.alertAction = NSLocalizedString(@"View Details", nil);
test.category = @"MY_CATEGORY";
[myapp presentLocalNotificationNow:test];
}
在应用委托中 didFinishLaunchingWithOptions:
UIMutableUserNotificationAction *myAction =
[[UIMutableUserNotificationAction alloc] init];
myAction.identifier = @"MY_IDENTIFIER";
myAction.title = @"Test Action";
myAction.activationMode = UIUserNotificationActivationModeBackground;
myAction.destructive = NO;
myAction.authenticationRequired = NO;
//------------
// First create the category
UIMutableUserNotificationCategory *inviteCategory =
[[UIMutableUserNotificationCategory alloc] init];
// Identifier to include in your push payload and local notification
inviteCategory.identifier = @"MY_CATEGORY";
// Add the actions to the category and set the action context
[inviteCategory setActions:@[myAction]
forContext:UIUserNotificationActionContextDefault];
// Set the actions to present in a minimal context
[inviteCategory setActions:@[myAction]
forContext:UIUserNotificationActionContextMinimal];
NSSet *categories = [NSSet setWithObject:inviteCategory];
UIUserNotificationSettings *settings =
[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound
categories:categories];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
您的代码有效,您只需向左滑动通知即可看到操作按钮(或者将其下拉,如果它以横幅的形式从顶部呈现,当设备处于“已锁定)。
此外,我猜你已经这样做了,只是没有包含代码,为了处理用户选择的操作,你需要在你的应用委托中实现这个方法:
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification completionHandler:(void(^)())completionHandler