SNSPublishRequest如何发送aps数组而不会看到APNS的“默认”消息

时间:2014-03-12 23:49:34

标签: ios objective-c amazon-web-services amazon-sns

我正在尝试使用SNSPublishRequest发布到SNS,但我无法弄清楚如何格式化JSON以实际使用为aps字典设置的参数。如果我为"默认"它会发送那条消息。但是,如果我也添加了APNS字典,它似乎没有显示任何内容。这就是我格式化JSON请求的方式 - 我错过了什么吗?

NSDictionary *parameters = @{@"default" : @"",
                             @"APNS" : @{@"aps": @{@"alert": @"hello"}}};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters
                                                   options:0
                                                     error:&error];

NSString *JSONString = [[NSString alloc] initWithBytes:[jsonData bytes] length:[jsonData length] encoding:NSUTF8StringEncoding];
NSLog(@"JSON OUTPUT: %@",JSONString);

SNSPublishRequest *pr = [[SNSPublishRequest alloc] initWithTopicArn:@"someTopic" andMessage:JSONString];
pr.messageStructure = @"json";

1 个答案:

答案 0 :(得分:1)

我认为SNS的APNs字典本身需要一个JSON编码的字符串格式。我们必须逃脱所有的"并添加\ s

NSString* JSONString = @"{\"default\": \"<enter your message here>\",\"APNS_SANDBOX\":\"{\\\"aps\\\":{\\\"alert\\\":\\\"<HELLO>\\\"}}\"}";