2017-07-26 12 views
0

UAのdocsに続いてUrban Airshipのインタラクティブ通知を実装しています。私は怒鳴るように、登録したカテゴリとアクションが成功している:Objective-C:アプリ内メッセージングボタンの操作

// 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]]; 

は今、私はこれらのボタンでアプリ内のメッセージングを構築しようとしている(&キャンセル後)、私は、メッセージのbuttonGroupを設定したときに、私のボタンは、すでに登場しています。残念ながら、各ボタンのカスタムアクションをリンクするにはどうすればいいのか分からず、メッセージの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]; 
}); 

ありがとうございます。

答えて

1

ボタン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_nameanother_action_nameを実行します。

+0

ニース!それは働いた、ありがとう! –

関連する問題