Objective-C:应用内消息按钮的操作
Objective-C: In-App Messaging buttons' action
我正在实施 Urban Airship 的交互式通知,继 UA docs 之后。我已成功注册类别和操作,如下所示:
// Define category options foreground and none
UANotificationActionOptions optionsActions = ( UANotificationActionOptionForeground );
UANotificationActionOptions optionsNone = ( UANotificationActionOptionNone );
UANotificationCategoryOptions optionCategory = ( UANotificationCategoryOptionCustomDismissAction );
// Define cancel action for all categories
UANotificationAction *actionCancel = [UANotificationAction actionWithIdentifier: @"action_cancel"
title: @"Cancel"
options: optionsNone];
// Define post action for the post category
UANotificationAction *actionPost = [UANotificationAction actionWithIdentifier: @"action_post"
title: @"Post"
options: optionsActions];
// Actions of post category
NSArray<UANotificationAction *> *actionsPost = @[actionPost, actionCancel];
// Define the post category
UANotificationCategory *post = [UANotificationCategory categoryWithIdentifier: @"post_cancel"
actions: actionsPost
intentIdentifiers: @[]
options: optionCategory];
// Set the custom categories
[UAirship push].customCategories = [NSSet setWithArray:@[post]];
现在,我正在尝试使用这些按钮(post 和取消)构建应用程序内消息,当我设置消息的 buttonGroup. Unfortunately, I've could not figure out how can I link custom actions for each button, I don't know which dictionary I should pass in message's buttonActions.
时,我的按钮已经出现
UAInAppMessage *message = [UAInAppMessage new];
message.displayType = UAInAppMessageDisplayTypeBanner;
message.position = UAInAppMessagePositionTop;
message.duration = 5.0;
message.alert = @"My alert"
message.primaryColor = [UIColor whiteColor];
message.secondaryColor = [UIColor blackColor];
UAInAppMessaging *inAppMessaging = [UAInAppMessaging new];
[message setButtonGroup: @"post_cancel"]; // this line ensure that my in-app messaging add my two registered buttons
[message setButtonActions: /* WHICH DICTIONARY SHOULD I PASS? */ ];
dispatch_async(dispatch_get_main_queue(), ^{
[inAppMessaging displayMessage: message];
});
谢谢。
它需要一个按钮 ID 字典到操作名称到值的映射。示例:
@{
@"action_cancel":
@{
@"my_custom_action_name": @"custom action value",
@"another_action_name": @(YES)
},
@"action_post":
@{
@"some_other_action_name": @"some other action value"
}
}
当点击应用程序内 action_cancel
按钮时,运行 my_custom_action_name
和 another_action_name
。
我正在实施 Urban Airship 的交互式通知,继 UA docs 之后。我已成功注册类别和操作,如下所示:
// Define category options foreground and none
UANotificationActionOptions optionsActions = ( UANotificationActionOptionForeground );
UANotificationActionOptions optionsNone = ( UANotificationActionOptionNone );
UANotificationCategoryOptions optionCategory = ( UANotificationCategoryOptionCustomDismissAction );
// Define cancel action for all categories
UANotificationAction *actionCancel = [UANotificationAction actionWithIdentifier: @"action_cancel"
title: @"Cancel"
options: optionsNone];
// Define post action for the post category
UANotificationAction *actionPost = [UANotificationAction actionWithIdentifier: @"action_post"
title: @"Post"
options: optionsActions];
// Actions of post category
NSArray<UANotificationAction *> *actionsPost = @[actionPost, actionCancel];
// Define the post category
UANotificationCategory *post = [UANotificationCategory categoryWithIdentifier: @"post_cancel"
actions: actionsPost
intentIdentifiers: @[]
options: optionCategory];
// Set the custom categories
[UAirship push].customCategories = [NSSet setWithArray:@[post]];
现在,我正在尝试使用这些按钮(post 和取消)构建应用程序内消息,当我设置消息的 buttonGroup. Unfortunately, I've could not figure out how can I link custom actions for each button, I don't know which dictionary I should pass in message's buttonActions.
时,我的按钮已经出现UAInAppMessage *message = [UAInAppMessage new];
message.displayType = UAInAppMessageDisplayTypeBanner;
message.position = UAInAppMessagePositionTop;
message.duration = 5.0;
message.alert = @"My alert"
message.primaryColor = [UIColor whiteColor];
message.secondaryColor = [UIColor blackColor];
UAInAppMessaging *inAppMessaging = [UAInAppMessaging new];
[message setButtonGroup: @"post_cancel"]; // this line ensure that my in-app messaging add my two registered buttons
[message setButtonActions: /* WHICH DICTIONARY SHOULD I PASS? */ ];
dispatch_async(dispatch_get_main_queue(), ^{
[inAppMessaging displayMessage: message];
});
谢谢。
它需要一个按钮 ID 字典到操作名称到值的映射。示例:
@{
@"action_cancel":
@{
@"my_custom_action_name": @"custom action value",
@"another_action_name": @(YES)
},
@"action_post":
@{
@"some_other_action_name": @"some other action value"
}
}
当点击应用程序内 action_cancel
按钮时,运行 my_custom_action_name
和 another_action_name
。