首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调度UILocalNotification

调度UILocalNotification
EN

Stack Overflow用户
提问于 2016-11-26 08:53:06
回答 1查看 267关注 0票数 1

收到通知后,我想要可操作的按钮。为了处理远程推送通知,我添加了以下代码-

代码语言:javascript
复制
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIApplication *application = [UIApplication sharedApplication];

if( SYSTEM_VERSION_LESS_THAN( @"10.0" ) ) {
    UIMutableUserNotificationAction *action1 = [[UIMutableUserNotificationAction alloc] init];
    [action1 setActivationMode:UIUserNotificationActivationModeForeground];
    [action1 setTitle:@"action1Text"];
    [action1 setIdentifier:@"action1id"];
    [action1 setDestructive:NO];
    [action1 setAuthenticationRequired:NO];

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

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

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

    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

}
}

它工作得很完美。我能看到按钮并处理这个动作。现在,单击该按钮并基于一些更多的逻辑,我希望使用上面定义的相同的可操作按钮来调度本地通知。我添加了代码(不是在AppDelegate文件中):

代码语言:javascript
复制
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:10];
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = date;
localNotification.timeZone = [NSTimeZone defaultTimeZone];
localNotification.alertBody = @"title 4";
localNotification.hasAction = YES;
localNotification.alertAction = @"action";
localNotification.soundName = UILocalNotificationDefaultSoundName;
localNotification.category = kRemindLaterCategory;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

本地通知已排定,我将收到通知。但我没看到任何可操作的按钮。

我读过苹果文档

代码语言:javascript
复制
- (void) application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification;

似乎很有用。但这是在单击通知时触发的。我提到的其他帖子:https://www.shinobicontrols.com/blog/ios8-day-by-day-day-25-notification-actions actions and categories don't show in UILocalNotification in iOS How can I add action buttons/actions to UILocalNotification alert?

谁能给我指出正确的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-26 10:32:12

kRemindLaterCategory值和kMTNRemindLaterCategory值应该是相同的,那么您也可以看到带有本地通知的可操作按钮,如果两者不相同,可操作按钮就无法显示,因为带有本地通知的指定类别尚未注册。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40816617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档