iOS - 向远程通知添加操作。我错过了什么?
iOS - Adding actions to remote notifications. What am I missing?
我正在尝试向 iOS 远程通知添加一个操作。
这是我发送给休斯顿的命令 (https://github.com/nomad/houston)
apn push "APNS_TOKEN_HERE" -c /Users/johannwerner/Desktop/apple_push_notification.pem -P '{"aps":{"alert":{"action-loc-key":"OK","title":"hello","body":"Hello"},"category":"ACTIONABLE"}}'
当应用程序从推送通知启动并且我从 didFinishWithOptions 方法记录 launchOptions 时,我得到以下信息
{
UIApplicationLaunchOptionsRemoteNotificationKey = {
aps = {
alert = {
"action-loc-key" = OK;
body = Hello;
title = hello;
};
category = ACTIONABLE;
};
};
}
当我在代码中注册通知时,我使用了以下内容。
if (NSClassFromString(@"UNUserNotificationCenter")) {
UNNotificationAction* snoozeAction = [UNNotificationAction
actionWithIdentifier:@"SNOOZE_ACTION"
title:@"Snooze"
options:UNNotificationActionOptionNone];
UNNotificationCategory* generalCategory = [UNNotificationCategory
categoryWithIdentifier:@"GENERAL"
actions:@[snoozeAction]
intentIdentifiers:@[@"ACTIONABLE"]
options:UNNotificationCategoryOptionCustomDismissAction];
UNAuthorizationOptions options = (UNAuthorizationOptionBadge | UNAuthorizationOptionSound |UNAuthorizationOptionAlert);
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center setNotificationCategories:[NSSet setWithObjects:generalCategory, nil]];
center.delegate = self;
[center requestAuthorizationWithOptions:options completionHandler:^(BOOL granted, NSError * _Nullable error)
{
if( !error ){
[Localytics didRequestUserNotificationAuthorizationWithOptions:options
granted:granted];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
[[NSNotificationCenter defaultCenter] postNotificationName:PUSH_DELEGATE_AFTER_REGISTERED object: nil];
}];
}
我收到的推送包含我的标题和 "hello" 的 body 文本,但推送通知上没有按钮或操作。
我已经阅读了本指南https://nrj.io/simple-interactive-notifications-in-ios-8/
终于找到了。在我的有效负载中,我将类别作为字符串 "actionable" 发送。应该是"GENERAL"
我正在尝试向 iOS 远程通知添加一个操作。
这是我发送给休斯顿的命令 (https://github.com/nomad/houston)
apn push "APNS_TOKEN_HERE" -c /Users/johannwerner/Desktop/apple_push_notification.pem -P '{"aps":{"alert":{"action-loc-key":"OK","title":"hello","body":"Hello"},"category":"ACTIONABLE"}}'
当应用程序从推送通知启动并且我从 didFinishWithOptions 方法记录 launchOptions 时,我得到以下信息
{
UIApplicationLaunchOptionsRemoteNotificationKey = {
aps = {
alert = {
"action-loc-key" = OK;
body = Hello;
title = hello;
};
category = ACTIONABLE;
};
};
}
当我在代码中注册通知时,我使用了以下内容。
if (NSClassFromString(@"UNUserNotificationCenter")) {
UNNotificationAction* snoozeAction = [UNNotificationAction
actionWithIdentifier:@"SNOOZE_ACTION"
title:@"Snooze"
options:UNNotificationActionOptionNone];
UNNotificationCategory* generalCategory = [UNNotificationCategory
categoryWithIdentifier:@"GENERAL"
actions:@[snoozeAction]
intentIdentifiers:@[@"ACTIONABLE"]
options:UNNotificationCategoryOptionCustomDismissAction];
UNAuthorizationOptions options = (UNAuthorizationOptionBadge | UNAuthorizationOptionSound |UNAuthorizationOptionAlert);
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center setNotificationCategories:[NSSet setWithObjects:generalCategory, nil]];
center.delegate = self;
[center requestAuthorizationWithOptions:options completionHandler:^(BOOL granted, NSError * _Nullable error)
{
if( !error ){
[Localytics didRequestUserNotificationAuthorizationWithOptions:options
granted:granted];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
[[NSNotificationCenter defaultCenter] postNotificationName:PUSH_DELEGATE_AFTER_REGISTERED object: nil];
}];
}
我收到的推送包含我的标题和 "hello" 的 body 文本,但推送通知上没有按钮或操作。
我已经阅读了本指南https://nrj.io/simple-interactive-notifications-in-ios-8/
终于找到了。在我的有效负载中,我将类别作为字符串 "actionable" 发送。应该是"GENERAL"