• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-13 06:32:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

这是我为 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}

有人能解释一下吗?谢谢



Best Answer-推荐答案


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

 [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

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

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

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

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap