【问题标题】:How can I pass JSON object for iOS push notification如何为 iOS 推送通知传递 JSON 对象
【发布时间】:2015-02-20 14:02:10
【问题描述】:

我正在使用 javapns 向 iOS 设备发送推送通知,通常使用两种方法,即 alert() 和 payload()。使用此功能中的任何一项,我们都可以向 iOS 设备发送推送通知。在这里,我需要传递 json 对象,而不是在这些方法中的任何一个中发送简单的消息。所以请谁能告诉我如何实现这一目标。

【问题讨论】:

    标签: java ios json apple-push-notifications javapns


    【解决方案1】:

    改用Push. payload(........)方法,它需要Payload对象。

    String rawJSON = "{\"aps\":{\"alert\":\"Message received from Bob\"},\"acme2\":[\"bang\",\"whiz\"]}";
    Payload payload = new Payload(rawJSON);
    //Or as mentioned in the comments
    PushNotificationPayload payload = PushNotificationPayload.fromJSON(rawJSON);
    

    json的例子是

    {
        "aps" : { "alert" : "Message received from Bob" },
        "acme2" : [ "bang",  "whiz" ]
    }
    

    对于有效载荷 json The Notification Payload

    对于javapns docs read here

    【讨论】:

    • 谢谢,非常感谢。您能否更清楚地说明如何创建 json 字符串,因为我在创建 json 字符串时遇到了问题。
    • 感谢您编辑您的答案,现在我知道了如何创建 json 字符串,但这是我在编写代码时面临的另一个问题 Payload payload = new Payload(rawJSON);在这里,我收到类似“无法实例化类型有效负载”的错误消息。谢谢。
    • 我对它了解不多,因为我刚刚检查了文档并找到了这个构造函数。你必须把它整理出来。我也从未使用过 javapns。
    • 好的,谢谢,我使用以下构造函数对其进行排序 PushNotificationPayload payload = PushNotificationPayload.fromJSON(rawJSON);
    【解决方案2】:

    忽略 APNS.newPayload 如何创建默认有效负载。

    像这样创建您的自定义负载。

    JSONObject requestedData = new JSONObject();
    requestedData.put("id", 1);
    requestedData.put("firstName", "K");
    requestedData.put("lastName", "Joshi");
    
    JSONObject aps = new JSONObject();
    aps.put("alert", "KJ sent a message");
    JSONObject request = new JSONObject();
    request.put("aps", aps);
    request.put("requestedData", requestedData);
    //Create Payload
    String payload = request.toString();
    //Push
    apnsService.push("deviceid", payload);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-16
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      相关资源
      最近更新 更多