我正在使用Java-APNS框架向iOS設備發送推送通知。它工作得很好(感謝開發人員!),並且我可以在所有設置正確時發送給我的設備。但是,我希望能夠妥善處理失敗案例。有跡象表明,應某些情況下收到了一些文件APNS錯誤代碼:使用java-apns檢測推送問題
我怎麼會創造出一些的失敗案例?我有我自己的類來實現ApnsDelegate並用我的委託構造我的ApnsService對象。我試圖傳遞一個無效的標記在我的電話來推動,以及一個空字符串有效載荷:
service.push("ab", "")
但我ApnsDelegate的messageSent方法仍然被調用。我希望這最終在messageSendFailed方法,或者也許connectionClosed但都不被調用。有沒有人測試過這個東西,並得到它的工作?這裏是我的課程的一個例子...我實際上在斯卡拉這樣做,但我認爲如果我發佈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());
}
}
如果有人仍然想要答案,我會留下問題,但我現在正在查看[JavaPNS](http://code.google.com/p/javapns)作爲替代方案。似乎在失敗情況下啓用得更好,並且最近在上個月進行了更新。我已經能夠輕鬆發送我的推送通知以及創建失敗案例。 java-apns在一年內似乎沒有被觸及。 – ShatyUT