无论您使用的语言和库如何,推送通知有效内容都是JSON有效内容:
{
"aps": {
"badge": 10,
"alert": "Hello world!",
"sound": "cat.caf"
}
}
aps令牌是Apple APN数据。您还可以向自己的有效内容添加自定义数据:
{
"aps": {
"badge": 10,
"alert": "Hello world!",
"sound": "cat.caf"
},
"job_id": 1
}
当您在应用程式中收到通知时,只需在通知字典中检查您的参数:
- (void)handleBackgroundNotification:(NSDictionary *)notification
{
NSDictionary *aps = (NSDictionary *)[notification objectForKey:@"aps"];
NSMutableString *alert = [NSMutableString stringWithString:@""];
if ([aps objectForKey:@"alert"])
{
[alert appendString:(NSString *)[aps objectForKey:@"alert"]];
}
if ([notification objectForKey:@"job_id"])
{
// do something with job id
int jobID = [[notification objectForKey:@"job_id"] intValue];
}
}
请记住,有效负载的总大小为256个字节,当然包括您的自定义参数。因此,您可能必须(有降低可读性的风险)调用您的自定义参数“ji”而不是“job_id”挤压字节。
所有这些都记录在iOS文档中的Local and Push Notification Programming Guide中。绝对会推荐阅读,因为它比最初的声音更复杂(至少,这是我想)。