想实现它发送一个苹果推送通知到iPhone客户端应用程序的Java程序......发现了以下库: Java的的APN
供应商代码:
创建(从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)以下内容:
创建基于APNS SSL证书和密钥
创建和安装的供应配置文件
安装SSL证书和服务器上的关键。
已经阅读过苹果推送通知服务指南几次,发现几件事情:
(1)在第15页,它指出该设备令牌不一样的设备UDID(我目前不正确地传递为PushNotificationManager.addDevice()方法中的第二个参数(见上文))。
第17页,它指出:
“的APN利用包含所述唯一的设备证书中的信息的设备令牌。该设备令牌包含设备的识别符。然后,它与令牌密钥加密设备令牌,并将其返回给设备,该设备的设备令牌返回到请求的应用程序作为一个NSData对象。然后,应用程序必须在二进制或十六进制格式递送设备令牌其提供者“。
iPhone OS客户端实现
(2)读取页33后 - 34,我发现我不包括Objective-C代码具有该应用与APN的注册。
我不是一个Objective-C开发人员,所以这是我在哪里可以恢复设备代码或我必须从证书怎么做呢?
我在哪里获得设备令牌(对不起,别人写的Objective-C的客户端应用程序,我是一个Java开发)?
问题(S):
(1)由于不知道从哪里得到的设备令牌和移动客户端的代码注册外,还有什么,我还没有看过去还是错过了什么?
(2)我使用的Javapns库的正确方法?
感谢您抽出时间来阅读...