发送自定义数据的Apple推送通知

我正在从PHP作业应用程序发送推送通知到iPhone。 我正在发送有关新工作的推送通知。 当用户点击推送通知的视图popup时,这可能是用户redirect到设备中的特定作业。

我的意思是我想知道我可以发送任何自定义数据与推送通知,如jobId,别的东西….所以iPhone的结束可以检索和显示特定的工作?

谢谢。

无论您使用的语言和库如何,推送通知有效内容都是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”来压缩字节。

所有这些都logging在iOS文档的本地和推送通知编程指南中。 肯定会推荐一个阅读,因为它比最初听起来更复杂(至less,这是我的想法)。

是的,你可以发送自定义数据,检查apns-php库的所有推送通知需求:

我们可以添加多个自定义数据,但是,如果我使用sub_action作为名称,我的iPhone不能接收消息

Java的:

 PayLoad payLoad = new PayLoad(); payLoad.addCustomDictionary("action", action_type); payLoad.addCustomDictionary("subaction", sub_action_type);