代码改进:
?
?
?
?
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; } /**********发送push时可能会有长度限制,需要注意一下*************/ PushNotificationManager pushManager = null; try { List<String> list = new ArrayList<String>(); list.add("斗破苍穹"); PayLoad complexPayLoad = new PayLoad(); PayLoadCustomAlert customAlert = new PayLoadCustomAlert(); customAlert.addActionLocKey("Open App"); customAlert.addLocKey("您订阅的图书《%1$@》已更新,请到书架查看!"); customAlert.addLocArgs(list); complexPayLoad.addCustomAlert(customAlert); complexPayLoad.addBadge(1); complexPayLoad.addSound("default"); complexPayLoad.addCustomDictionary("type", 1); complexPayLoad.addCustomDictionary("bookID", 123456); System.out.println(complexPayLoad.toString()); pushManager = PushNotificationManager.getInstance(); pushManager.addDevice("iPhone", deviceToken); String certificatePassword = "*****"; String host = "gateway.sandbox.push.apple.com"; String port = "2195"; String certificationPath = "K:/***.p12"; pushManager.initializeConnection(host, Integer.parseInt(port), certificationPath, certificatePassword, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12); // 发送PUSH消息 Device client = pushManager.getDevice("iPhone"); pushManager.sendNotification(client, complexPayLoad); result = true; } catch (Exception e) { logger.info("向IPhone终端发送PUSH消息产生异常!"); System.out.println("向IPhone终端发送PUSH消息产生异常!"); e.printStackTrace(); } finally { if (pushManager != null) { pushManager.stopConnection(); pushManager.removeDevice("iPhone"); } } return result; }
?
?
?
上面代码中定义的“type”和“bookID”在客户端可以获得。