发送自定义数据的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);