iphone推送java代码实现

☆樱花仙子☆ 提交于 2019-12-01 11:46:23

最近在研究iphone推送的java实现,看过发现原来很简单,以下是我根据网上源码修改的程序,具体里面的证书和手机token的生产就不解释了,本人没有搞过iphone,有需要的可以再网上搜索以下,很多也很简单。

代码有不对的地方,多谢大家指出 帮忙改进。

 /************************************************
 测试推送服务器地址:gateway.sandbox.push.apple.com /2195 
 产品推送服务器地址:gateway.push.apple.com / 2195 

需要javaPNS_2.2.jar包

 ***************************************************/

 /**

     *这是一个比较简单的推送方法,

     * apple的推送方法

     * @param tokens   iphone手机获取的token

     * @param path 这里是一个.p12格式的文件路径,需要去apple官网申请一个 

     * @param password  p12的密码 此处注意导出的证书密码不能为空因为空密码会报错

     * @param message 推送消息的内容

     * @param count 应用图标上小红圈上的数值

     * @param sendCount 单发还是群发  true:单发 false:群发

     */

public void sendpush(List<String> tokens,String path, String password, String message,Integer count,boolean sendCount) {

try {

PushNotificationPayload payLoad = PushNotificationPayload.fromJSON(message);

//payLoad.addAlert(message); // 消息内容

payLoad.addBadge(count); // iphone应用图标上小红圈上的数值

payLoad.addSound("default"); // 铃音 默认

PushNotificationManager pushManager = new PushNotificationManager();

//true:表示的是产品发布推送服务 false:表示的是产品测试推送服务

pushManager.initializeConnection(new AppleNotificationServerBasicImpl(path, password, true));

List<PushedNotification> notifications = new ArrayList<PushedNotification>(); 

// 发送push消息

if (sendCount) {

log.debug("--------------------------apple 推送 单-------");

Device device = new BasicDevice();

device.setToken(tokens.get(0));

PushedNotification notification = pushManager.sendNotification(device, payLoad, true);

notifications.add(notification);

} else {

log.debug("--------------------------apple 推送 群-------");

List<Device> device = new ArrayList<Device>();

for (String token : tokens) {

device.add(new BasicDevice(token));

}

notifications = pushManager.sendNotifications(payLoad, device);

}

List<PushedNotification> failedNotifications = PushedNotification.findFailedNotifications(notifications);

List<PushedNotification> successfulNotifications = PushedNotification.findSuccessfulNotifications(notifications);

int failed = failedNotifications.size();

int successful = successfulNotifications.size();

 

if (successful > 0 && failed == 0) {

log.debug("-----All notifications pushed 成功 (" + successfulNotifications.size() + "):");

} else if (successful == 0 && failed > 0) {

log.debug("-----All notifications 失败 (" + failedNotifications.size() + "):");

} else if (successful == 0 && failed == 0) {

System.out.println("No notifications could be sent, probably because of a critical error");

} else {

log.debug("------Some notifications 失败 (" + failedNotifications.size() + "):");

log.debug("------Others 成功 (" + successfulNotifications.size() + "):");

}

// pushManager.stopConnection();

} catch (Exception e) {

e.printStackTrace();

}

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!