滑动按钮不会用于远程通知
Swipe Buttons not coming for Remote notifications
我正在尝试在我的 IOS 8 应用程序中放置自定义按钮,以便在我的聊天应用程序中收到推送通知。
下面是我的代码,但推送通知没有显示发送按钮。
if([[UIApplication sharedApplication] respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
{
//Defining Ap Actions Categories
UIMutableUserNotificationAction *replyAction =
[[UIMutableUserNotificationAction alloc] init];
// Define an ID string to be passed back to your app when you handle the action
replyAction.identifier = @"REPLY_ACTION";
// Localized string displayed in the action button
replyAction.title = NSLocalizedString(@"REPLY", nil);
// If you need to show UI, choose foreground
replyAction.activationMode = UIUserNotificationActivationModeForeground;
// Destructive actions display in red
replyAction.destructive = NO;
// Set whether the action requires the user to authenticate
replyAction.authenticationRequired = YES;
UIMutableUserNotificationAction *remindLaterAction =
[[UIMutableUserNotificationAction alloc] init];
// Define an ID string to be passed back to your app when you handle the action
remindLaterAction.identifier = @"REMIND_LATER_ACTION";
// Localized string displayed in the action button
remindLaterAction.title = NSLocalizedString(@"REMIND", nil);
// If you need to show UI, choose foreground
remindLaterAction.activationMode = UIUserNotificationActivationModeForeground;
// Destructive actions display in red
remindLaterAction.destructive = NO;
// Set whether the action requires the user to authenticate
remindLaterAction.authenticationRequired = YES;
// First create the category
UIMutableUserNotificationCategory *singleChatCategory = [[UIMutableUserNotificationCategory alloc] init];
// Identifier to include in your push payload and local notification
[singleChatCategory setIdentifier:@"SINGLE_CHAT"];
// Add the actions to the category and set the action context
[singleChatCategory setActions:@[replyAction, remindLaterAction]
forContext:UIUserNotificationActionContextDefault];
// Set the actions to present in a minimal context
[singleChatCategory setActions:@[replyAction]
forContext:UIUserNotificationActionContextMinimal];
NSSet *categories = [NSSet setWithObjects:singleChatCategory,nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound) categories:categories]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound)];
}`
我还按照代码放入了本地化的字符串文件。
"SINGLECHAT_WITH_PREVIEW" = "%@:%@";
"SINGLECHAT_WITHOUT_PREVIEW" = "%@ %@ %@";
"REPLY" = "Reply";
"REMIND" = "Remind Me";
这也是我从服务器获取的推送 APS 详细信息作为 userInfo。
{
aps = {
alert = {
category = "SINGLE_CHAT";
"loc-args" = (
"USER DEV12347",
"TEST NOTIFICATION MESSAGE"
);
"loc-key" = "SINGLECHAT_WITHOUT_PREVIEW";
title = Closrr;
};
badge = 1;
sound = "push_play.aiff";
};
from = "+67123456";
to = "+67890765";
type = 2;
}
我有没有做错什么??请指教
category
应该在你aps
对象的第一层,而不是在alert
:
{
aps = {
category = "SINGLE_CHAT";
alert = {
(...)
我正在尝试在我的 IOS 8 应用程序中放置自定义按钮,以便在我的聊天应用程序中收到推送通知。
下面是我的代码,但推送通知没有显示发送按钮。
if([[UIApplication sharedApplication] respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
{
//Defining Ap Actions Categories
UIMutableUserNotificationAction *replyAction =
[[UIMutableUserNotificationAction alloc] init];
// Define an ID string to be passed back to your app when you handle the action
replyAction.identifier = @"REPLY_ACTION";
// Localized string displayed in the action button
replyAction.title = NSLocalizedString(@"REPLY", nil);
// If you need to show UI, choose foreground
replyAction.activationMode = UIUserNotificationActivationModeForeground;
// Destructive actions display in red
replyAction.destructive = NO;
// Set whether the action requires the user to authenticate
replyAction.authenticationRequired = YES;
UIMutableUserNotificationAction *remindLaterAction =
[[UIMutableUserNotificationAction alloc] init];
// Define an ID string to be passed back to your app when you handle the action
remindLaterAction.identifier = @"REMIND_LATER_ACTION";
// Localized string displayed in the action button
remindLaterAction.title = NSLocalizedString(@"REMIND", nil);
// If you need to show UI, choose foreground
remindLaterAction.activationMode = UIUserNotificationActivationModeForeground;
// Destructive actions display in red
remindLaterAction.destructive = NO;
// Set whether the action requires the user to authenticate
remindLaterAction.authenticationRequired = YES;
// First create the category
UIMutableUserNotificationCategory *singleChatCategory = [[UIMutableUserNotificationCategory alloc] init];
// Identifier to include in your push payload and local notification
[singleChatCategory setIdentifier:@"SINGLE_CHAT"];
// Add the actions to the category and set the action context
[singleChatCategory setActions:@[replyAction, remindLaterAction]
forContext:UIUserNotificationActionContextDefault];
// Set the actions to present in a minimal context
[singleChatCategory setActions:@[replyAction]
forContext:UIUserNotificationActionContextMinimal];
NSSet *categories = [NSSet setWithObjects:singleChatCategory,nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound) categories:categories]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound)];
}`
我还按照代码放入了本地化的字符串文件。
"SINGLECHAT_WITH_PREVIEW" = "%@:%@";
"SINGLECHAT_WITHOUT_PREVIEW" = "%@ %@ %@";
"REPLY" = "Reply";
"REMIND" = "Remind Me";
这也是我从服务器获取的推送 APS 详细信息作为 userInfo。
{
aps = {
alert = {
category = "SINGLE_CHAT";
"loc-args" = (
"USER DEV12347",
"TEST NOTIFICATION MESSAGE"
);
"loc-key" = "SINGLECHAT_WITHOUT_PREVIEW";
title = Closrr;
};
badge = 1;
sound = "push_play.aiff";
};
from = "+67123456";
to = "+67890765";
type = 2;
}
我有没有做错什么??请指教
category
应该在你aps
对象的第一层,而不是在alert
:
{
aps = {
category = "SINGLE_CHAT";
alert = {
(...)