带有发送自定义数据的 Apple 推送通知
2022-08-30 09:44:13
我正在将推送通知从php工作应用程序发送到iPhone。我正在发送有关新作业的推送通知。这是否有可能当用户点击弹出推送通知的视图时,然后用户重定向到设备中的特定作业。
我的意思是我想知道我可以发送任何带有推送通知的自定义数据,例如jobId,其他东西....以便iPhone结束可以检索和显示特定的作业?
谢谢。
我正在将推送通知从php工作应用程序发送到iPhone。我正在发送有关新作业的推送通知。这是否有可能当用户点击弹出推送通知的视图时,然后用户重定向到设备中的特定作业。
我的意思是我想知道我可以发送任何带有推送通知的自定义数据,例如jobId,其他东西....以便iPhone结束可以检索和显示特定的作业?
谢谢。
无论您使用哪种语言和库,推送通知有效负载都是 JSON 有效负载:
{
"aps": {
"badge": 10,
"alert": "Hello world!",
"sound": "cat.caf"
}
}
令牌是 Apple APN 数据。您也可以将自定义数据添加到有效负载:aps
{
"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 文档的本地和推送通知编程指南中。绝对会推荐阅读,因为它比最初听起来更复杂(至少,这就是我的想法)。