gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:16:03 24 4
gpt4 key购买 nike

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

+ (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;
}

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

{"aps":{"alert":"test","category":"coride_invite"},"journey_id":100}

任何人都可以解释一下吗?谢谢

最佳答案

检查您的代码中是否还有以下内容:

 [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

因为 UIUserNotificationSettings 是单例的,无论何时调用它,它都会覆盖旧设置。因此,如果在没有任何按钮的情况下注册新设置,它将不会显示任何按钮。

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

关于ios 8 交互式通知不显示操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29817994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com