如何从 javapns 发送 content-available = 1
how to send content-available = 1 from javapns
我正在使用 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);
但是负载 class 没有 "content-available" 的占位符:1。
我还检查了
Push.contentAvailable(keystore, vKeyStoreName, production, devices)
但它不允许设置自定义消息值 "someKey"。
请建议发送方式 "content-available": 1 同时触发通知。
抱歉这么晚才发布我的答案,我当时就想通了。
很简单。
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"。
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();
我正在使用 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);
但是负载 class 没有 "content-available" 的占位符:1。 我还检查了
Push.contentAvailable(keystore, vKeyStoreName, production, devices)
但它不允许设置自定义消息值 "someKey"。
请建议发送方式 "content-available": 1 同时触发通知。
抱歉这么晚才发布我的答案,我当时就想通了。 很简单。
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"。
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();