我正在尝试使用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";
答案 0 :(得分:1)
我认为SNS的APNs字典本身需要一个JSON编码的字符串格式。我们必须逃脱所有的"并添加\ s
NSString* JSONString = @"{\"default\": \"<enter your message here>\",\"APNS_SANDBOX\":\"{\\\"aps\\\":{\\\"alert\\\":\\\"<HELLO>\\\"}}\"}";