我正在使用 Java-APNS 框架向 iOS 设备发送推送通知。它工作得很好(感谢开发人员!),当一切设置正确时,我可以发送到我的设备。但是,我想正确处理失败的情况。在某些情况下,应该收到一些记录在案的 APNS 错误代码:
我将如何创建一些失败案例?我有自己的类来实现 ApnsDelegate 并用我的委托构造我的 ApnsService 对象。我尝试在我的 push 调用中传递一个无效的令牌以及一个用于有效负载的空字符串:
service.push("ab", "")
但是我的 ApnsDelegate 的 messageSent 方法仍然被调用。我希望这最终会出现在 messageSendFailed 方法中,或者可能是 connectionClosed 但都没有被调用。有没有人测试过这个东西并让它工作?这是我的课程的一个例子......我实际上是在 Scala 中这样做的,但我想如果我发布 Java 会更好。当被调用时,它只会打印“Message sent to 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());
}
}