代码改进:
public static boolean logic(String deviceToken, String message)
throws Exception {
boolean result = false;
if (deviceToken == null || "".equals(deviceToken)) {
logger.info("IPhone终端令牌号为空值,PUSH失败!");
System.out.println("IPhone终端令牌号为空值,PUSH失败!");
return false;
}
PushNotificationManager pushManager = null;
try {
PayLoad payLoad = new PayLoad();
PayLoadCustomAlert alert = new PayLoadCustomAlert();
List<String> list = new ArrayList<String>();
list.add("Jenna");
list.add("Frank");
// alert.addLocKey("%@ and %@ have invited you to play Monopoly");
alert.addLocKey("%2$@ and %1$@ have invited you to play Monopoly");
alert.addLocArgs(list);
alert.addActionLocKey("PLAY");
payLoad.addCustomAlert(alert);
payLoad.addBadge(1);// IPhone上显示的信息条数,默认为1
payLoad.addSound("default");// 铃音
pushManager = PushNotificationManager.getInstance();
pushManager.addDevice("iPhone", "****");
String certificatePassword = "****"; String host = "gateway.sandbox.push.apple.com";
String port = "2195";
String certificationPath = "c:/push_p.p12";
pushManager.initializeConnection(host, Integer.parseInt(port),
certificationPath, certificatePassword,
SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
// 发送PUSH消息
Device client = pushManager.getDevice("iPhone");
pushManager.sendNotification(client, payLoad);
result = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (pushManager != null) {
pushManager.stopConnection();
pushManager.removeDevice("iPhone");
}
}
return result;
}