Я пытаюсь реализовать программу Java, которая отправляет push-уведомление Apple в клиентское приложение iPhone ... Найдена следующая библиотека: APNs Java
Код провайдера:
Создан следующий код (из Javapns) для использования в моем приложении:
try {
PayLoad payLoad = new PayLoad();
payLoad.addAlert("My alert message");
payLoad.addBadge(45);
payLoad.addSound("default");
PushNotificationManager pushManager = PushNotificationManager.getInstance();
pushManager.addDevice("iPhone", "f4201f5d8278fe39545349d0868a24a3b60ed732");
log.warn("Initializing connectiong with APNS...");
// Connect to APNs
pushManager.initializeConnection(HOST, PORT,
"/etc/Certificates.p12", "password",
SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
Device client = pushManager.getDevice("Lambo");
// Send Push
log.warn("Sending push notification...");
PushNotificationManager.getInstance().sendNotification(client, payLoad);
}
catch (Exception e) {
throw new ApnsPushNotificationException("Unable to send push " + e);
}
Когда я запускаю это приложение (как вы можете видеть из операторов Log4j), исключений не возникает:
WARN [MyCode] Initializing connectiong with APNS...
WARN [MyCode] Sending push notification...
Но мое клиентское приложение не получает никаких уведомлений!
Процесс регистрации IDPP:
Кроме того, на портале программ для разработчиков iPhone (IDPP):
Создан сертификат и ключи SSL на основе APNS
Создан и установлен профиль обеспечения
Установлен сертификат SSL и ключ на сервере.
Несколько раз перечитал Руководство по обслуживанию push-уведомлений Apple и заметил несколько вещей:
(1) На странице 15 говорится, что токен устройства не совпадает с UDID устройства (который я в настоящее время неправильно передаю как второй параметр в методе PushNotificationManager.addDevice () (см. Выше)).
На странице 17 говорится:
"APN генерирует токен устройства, используя информацию, содержащуюся в уникальном сертификате устройства. Токен устройства содержит идентификатор устройства. Затем он шифрует токен устройства с помощью ключа токена и возвращает его на устройство. Устройство возвращает устройство. токен запрашивающему приложению как объект NSData. Затем приложение должно доставить токен устройства своему поставщику в двоичном или шестнадцатеричном формате. "
Внедрение клиента iPhone OS
(2) После прочтения страниц 33 - 34 я обнаружил, что не включил код Objective-C, чтобы приложение регистрировалось в APN.
Я не разработчик Objective-C, поэтому я могу восстановить код устройства или получить его из сертификата?
Где я могу получить токен устройства (извините, кто-то еще написал клиентское приложение Objective-C, а я являюсь Java-разработчиком)?
Вопрос (ы):
(1) За исключением незнания, где взять токен устройства и регистрации кода мобильного клиента, есть ли что-то еще, что я не просмотрел или пропустил?
(2) Правильно ли я использую библиотеку Javapns?
Спасибо, что нашли время, чтобы прочитать это ...