Я использую библиотеку notnoop/java-apns для передачи сообщений с моего сервера на устройства IOS. Push работает нормально, сообщения поступают клиентам.notnoop/java-apns не может обнаружить ошибку
Я пытаюсь определить, было ли сообщение отправлено клиенту или нет, но Проблема заключается в том, что я не могу обнаружить ошибку/успех нажатого сообщения с помощью EnhancedApnsNotification и реализует класс ApnsDelegate.
messageSendFailed & messageSent не называются
Мой код
public class PushTest implements ApnsDelegate {
private static pushtest instance = null;
private static ApnsService service;
private static int counter= 0;
private pushtest() {
}
static public PushTest instance() {
if (instance == null) {
instance = new pushtest();
try {
service = APNS.newService()
.withCert("certPath", "password")
.withSandboxDestination()
.build();
} catch (Exception e) {
e.printStackTrace();
}
}
return instance;
}
public void send(String token) {
LinkedHashMap<String, Boolean> result = new LinkedHashMap<String, Boolean>();
// build payload
int now = (int)(new Date().getTime()/1000);
try {
String payload = APNS.newPayload()
.badge(3)
.alertBody("test")
.build();
EnhancedApnsNotification notification = new EnhancedApnsNotification(counter++,
now + 60 * 60 /* Expire in one hour */,
token /* Device Token */,
payload);
service.push(notification);
} catch (Exception e1) {
System.out.println("IosPush :" + e1.getMessage());
}
}
@Override
public void connectionClosed(DeliveryError arg0, int arg1) {
System.out.println("connectionClosed");
}
@Override
public void messageSendFailed(ApnsNotification arg0, Throwable arg1) {
System.out.println("messageSendFailed");
}
@Override
public void messageSent(ApnsNotification arg0) {
System.out.println("messageSent");
}
}