1

我正在使用 java 客户端使用 javapns 发送通知。但是现在我需要使用 "content-available": 1 通知客户端应用程序有关新通知的信息,以便应用程序可以在其末尾提出可用内容的标志。

到目前为止,我一直在使用与下面类似的代码,

 PushNotificationPayload payload = PushNotificationPayload.complex();

    payload.addAlert(apnsUser.getPushMessage());
    payload.addSound("default");
    payload.addCustomDictionary("someKey", someValue);

    List<ListNotification> notifications = Push.payload(payload, somekeyStore, somepassword, isproduction, threads, devices);

但是有效负载类没有“内容可用”的占位符:1.我还检查了

Push.contentAvailable(keystore, vKeyStoreName, production, devices) 

但它不允许设置自定义消息值“someKey”。

请提出一种在触发通知时发送“内容可用”的方法:1。

4

2 回答 2

1
PayloadBuilder payloadBuilder = APNS.newPayload()
                .alertBody(message)
                .sound(sound)
                .actionKey(actionLocKey)
                .localizedKey(locKey)
                .localizedArguments(locArgs)
                .badge(badge)
                .customFields(customData)
                .category(category);
        if (contentAvailable!=null && contentAvailable.intValue()==1){
            payloadBuilder.instantDeliveryOrSilentNotification();
        }
        payload =payloadBuilder.build();
于 2016-12-05T08:34:14.003 回答
0

很抱歉这么晚才发布我的答案,我当时想通了。它很简单。

  JSONObject vSomeDictionary = new JSONObject();
  vSomeDictionary.put("content-available", 1);
  vSomeDictionary.put("alert", "SomeMessage");
  vSomeDictionary.put("sound", "default");
  JSONObject vJPayload = new JSONObject();
  vJPayload.put("aps", vSomeDictionary);

这样,您可以通过创建两个不同的 Jso 对象并将一个作为“aps”装配到另一个中来设置内容可用。

于 2016-04-22T20:36:03.027 回答