首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios 8交互式通知不显示操作

ios 8交互式通知不显示操作
EN

Stack Overflow用户
提问于 2015-04-23 16:38:05
回答 1查看 666关注 0票数 2

这是我为ios8注册交互通知的代码:

代码语言:javascript
复制
+ (void)registerInteractiveNotifications
{
    UIMutableUserNotificationCategory *corideInviteCategory = [self corideInviteCategory];
    UIMutableUserNotificationCategory *riderInviteCategory = [self riderInviteCategory];

    NSSet *categories = [NSSet setWithObjects:corideInviteCategory, riderInviteCategory, nil];
    UIUserNotificationType types = (UIUserNotificationTypeAlert|
                                    UIUserNotificationTypeSound|
                                    UIUserNotificationTypeBadge);

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

    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}

+ (UIMutableUserNotificationCategory *)riderInviteCategory
{
    UIMutableUserNotificationAction *accept;
    accept = [[UIMutableUserNotificationAction alloc] init];
    [accept setActivationMode:UIUserNotificationActivationModeForeground];
    [accept setTitle:@"Accept"];
    [accept setIdentifier:RiderInviteAccept];
    [accept setDestructive:NO];
    [accept setAuthenticationRequired:NO];

    UIMutableUserNotificationAction *decline;
    decline = [[UIMutableUserNotificationAction alloc] init];
    [decline setActivationMode:UIUserNotificationActivationModeForeground];
    [decline setTitle:@"Decline"];
    [decline setIdentifier:RiderInviteDecline];
    [decline setDestructive:YES];
    [decline setAuthenticationRequired:NO];

    UIMutableUserNotificationCategory *actionCategory;
    actionCategory = [[UIMutableUserNotificationCategory alloc] init];
    [actionCategory setIdentifier:RiderInviteCategory];
    [actionCategory setActions:@[decline, accept]
                    forContext:UIUserNotificationActionContextDefault];
    [actionCategory setActions:@[decline, accept] forContext:UIUserNotificationActionContextMinimal];

    return actionCategory;
}

+ (UIMutableUserNotificationCategory *)corideInviteCategory
{
    UIMutableUserNotificationAction *accept;
    accept = [[UIMutableUserNotificationAction alloc] init];
    [accept setActivationMode:UIUserNotificationActivationModeForeground];
    [accept setTitle:@"Accept"];
    [accept setIdentifier:CorideInviteAccept];
    [accept setDestructive:NO];
    [accept setAuthenticationRequired:NO];

    UIMutableUserNotificationAction *decline;
    decline = [[UIMutableUserNotificationAction alloc] init];
    [decline setActivationMode:UIUserNotificationActivationModeForeground];
    [decline setTitle:@"Decline"];
    [decline setIdentifier:CorideInviteDecline];
    [decline setDestructive:YES];
    [decline setAuthenticationRequired:NO];

    UIMutableUserNotificationCategory *actionCategory;
    actionCategory = [[UIMutableUserNotificationCategory alloc] init];
    [actionCategory setIdentifier:CorideInviteCategory];
    [actionCategory setActions:@[decline, accept]
                    forContext:UIUserNotificationActionContextDefault];
    [actionCategory setActions:@[decline, accept] forContext:UIUserNotificationActionContextMinimal];

    return actionCategory;
}

发生的情况是:当我删除应用程序并再次安装时,会出现两个操作按钮(当我向下拉下通知横幅时,或者在通知中心向左滑动时)。但过了一段时间(我真的不确定是什么原因),它们就不再出现了,尽管我一直在发送相同的通知。以下是我的通知内容:

代码语言:javascript
复制
{"aps":{"alert":"test","category":"coride_invite"},"journey_id":100}

有没有人能说点什么?谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-06-23 14:40:59

检查代码中的以下内容,如果它也在其他地方:

代码语言:javascript
复制
 [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

因此,如果注册的新设置没有任何按钮,它将不会显示任何按钮。

这里解释了注册新设置的更好方法:Interactive push notifications - Hide/Show buttons

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

https://stackoverflow.com/questions/29817994

复制
相关文章

相似问题

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