1

Я использую Amazon SNS для предоставления удаленных уведомлений для моего приложения iOS, и у меня возникают проблемы с получением категорий уведомлений, которые будут включены, когда они получены на клиентском устройстве.Категория удаленного уведомления не отправляется на клиентское устройство?

Вот как я проводкой уведомление от сервера с помощью SNS:

@client = Aws::SNS::Client.new(...) 

resp = @client.publish({ 
    target_arn: endpoint_arn, 
    message: { 
     default: body, 
     APNS: { 
      aps: { 
       alert: { 
        title: title, 
        body: body 
       }, 
       category: category 
      } 
     } 
    }.to_json, 
    subject: title, 
    message_structure: "json" 
}) 

А на устройстве IOS я получаю уведомления в приложение делегата с:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{ 
    NSDictionary<NSString *, id> * aps = [userInfo objectForKey:@"aps"]; 
    if (aps) { 
     NSString * category = [aps objectForKey:@"category"]; 
     NSLog(@"Category is: %@", category); // Category is: nil 
    } else { 
     NSLog(@"APS dictionary nil"); 
    } 
} 

Проблема в том, что категория всегда равна нулю. Я пробовал несколько разных структур объекта aps, но я не могу получить категорию на устройстве iOS.

ответ

0

Немного поздно, но может помочь кому-то еще.

Try посылая category собственность на том же уровне, как это aps:

resp = @client.publish({ 
    target_arn: endpoint_arn, 
    message: { 
     default: body, 
     APNS: { 
      aps: { 
       alert: { 
        title: title, 
        body: body 
       } 
      }, 
      category: category 
     } 
    }.to_json, 
    subject: title, 
    message_structure: "json" 
}) 

И получите ответ с

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{ 
    NSString * category = [userInfo objectForKey:@"category"]; 
    NSLog(@"Category is: %@", category);   
} 

Проверить this answer для получения дополнительной информации.

Надеюсь, эта помощь;)