我正在使用Java-APNS框架向iOS设备发送推送通知。它工作得非常好(感谢开发人员!)我能够在所有设置正确的情况下发送到我的设备。但是,我想妥善处理失败案件。对于某些情况,应该收到一些记录的APNS错误代码:
我如何创建一些失败案例?我有自己的类实现ApnsDelegate并使用我的委托构造我的ApnsService对象。我已经尝试在我的调用中传递一个无效的令牌以及有效载荷的空字符串:
service.push("ab", "")
但我的ApnsDelegate的messageSent方法仍然被调用。我希望这最终会在messageSendFailed方法中结束,或者可能是connectionClosed,但都不会被调用。有没有人测试过这些东西并让它发挥作用?这是我班级的一个例子......我实际上是在Scala中这样做但是如果我发布Java,我会好运。调用时,只会打印“发送给AB的消息”。
public class ApnsSender implements ApnsDelegate {
public void send(Notification Notification) {
ApnsService service = getApnsService();
String payload = getPayload(notification);
service.push("ab", "");
}
private ApnsService getApnsService() { ... }
private String getPayload(Notification notification) { ... }
public void messageSent(ApnsNotification message) {
String token = Utilities.toHexString(message.getDeviceToken());
System.out.println("Message sent to " + token);
}
public void messageSendFailed(ApnsNotification message, Throwable e) {
System.out.println("Message failed");
}
public void messageSent(DeliveryError e, Int messageIdentifier) {
System.out.println("Message closed with error code " + e.code());
}
}