【问题标题】:Apple Push Notification with Sending Custom Data带有发送自定义数据的 Apple 推送通知
【发布时间】:2011-12-29 08:49:58
【问题描述】:

我正在从 php 工作应用程序向 iphone 发送推送通知。我正在发送有关新工作的推送通知。是否有可能当用户点击推送通知弹出视图时,用户重定向到设备中的特定作业。

我的意思是我想知道我是否可以发送任何带有推送通知的自定义数据,例如 jobId,其他东西....以便 Iphone 端可以检索并显示特定的工作?

谢谢。

【问题讨论】:

  • oh..sorry rckones..我不知道如何接受作为答案..我的错..现在解决了... :)
  • 我们都是来学习的。

标签: php iphone apple-push-notifications


【解决方案1】:

无论您使用哪种语言和库,推送通知负载都是 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 中。绝对会推荐阅读,因为它比最初听起来更复杂(至少,我是这么认为的)。

【讨论】:

  • 如何向有效负载添加自定义数据?
  • @JoshHarington "job_id": 1 是有效载荷中的自定义数据
  • 从 iOS 8 开始,有效负载大小已从 256 字节增加到 2KB :)
  • 您是否在 iOS 10 中获取自定义数据负载?
【解决方案2】:

是的,您可以发送自定义数据,请查看apns-php library 了解所有推送通知需求:

【讨论】:

  • 您好:请您解释一下Php中Push的格式。
  • @Asim 我没有太多关于格式的信息,但你可以使用我提到的这个库,用于 PHP。您可以进行逆向工程以查看格式。
【解决方案3】:

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

Java:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 2017-11-18
    相关资源
    最近更新 更多