苹果推送服务
2014-07-10 09:23
183 查看
苹果推送服务
注意:
需要javapns.jar包
生成证书,,
代码:
注意:
需要javapns.jar包
生成证书,,
代码:
package com.test.push.iso; import java.util.ArrayList; import java.util.List; import javapns.devices.Device; import javapns.devices.implementations.basic.BasicDevice; import javapns.notification.AppleNotificationServerBasicImpl; import javapns.notification.PushNotificationManager; import javapns.notification.PushNotificationPayload; import javapns.notification.PushedNotification; import org.apache.log4j.Logger; public class IphonePush { Logger logger = Logger.getLogger(IphonePush.class); /** * *这是一个比较简单的推送方法, * * 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) { logger.info("sendpush(List<String> tokens=" + tokens + ", String path=" + path + ", String password=" + password + ", String message=" + message + ", Integer count=" + count + ", boolean sendCount=" + sendCount + ") - start"); 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) { logger.debug("--------------------------apple 推送 单-------"); Device device = new BasicDevice(); device.setToken(tokens.get(0)); PushedNotification notification = pushManager.sendNotification( device, payLoad, true); notifications.add(notification); } else { logger.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) { logger.debug("-----All notifications pushed 成功 (" + successfulNotifications.size() + "):"); } else if (successful == 0 && failed > 0) { logger.debug("-----All notifications 失败 (" + failedNotifications.size() + "):"); } else if (successful == 0 && failed == 0) { logger.debug("No notifications could be sent, probably because of a critical error"); } else { logger.debug("------Some notifications 失败 (" + failedNotifications.size() + "):"); logger.debug("------Others 成功 (" + successfulNotifications.size() + "):"); } // pushManager.stopConnection(); } catch (Exception e) { logger.error("sendpush()", e); e.printStackTrace(); } logger.info("sendpush(tokens, path, password, message, count, sendCount) - end"); } public static void main(String[] args) { IphonePush pushService = new IphonePush(); List<String> token = new ArrayList<String>(); String device_token = "d232f7f0669465542b3b68b9548d23691b468bf8da912ea8a101d17fa787cff4"; token.add(device_token); String certificatePath = "D://Workspaces//MyEclipse 8.6//test_web//WebRoot//pushCert.p12"; String certificatePassword = "hebmc_qt"; String msg = "Hello, world!"; pushService.sendpush(token, certificatePath, certificatePassword, msg, 5, true); } }
相关文章推荐
- 苹果信息推送服务(Apple Push Notification Service)使用总结
- 苹果消息推送服务教程:第2部分(共2部分)
- 苹果推送通知服务教程 Apple Push Notification Services Tutorial
- 苹果的推送通知服务(APNs)
- 苹果通知推送服务(APNS)一些关键特性摘要
- 苹果推送通知服务(APNs)编程
- 苹果信息推送服务(Apple Push Notification Service)使用总结
- 苹果信息推送服务(Apple Push Notification Service)使用总结
- 苹果推送通知服务(APNs)编程
- APNS/苹果推送服务
- Python搭建APNS苹果推送通知推送服务的相关模块使用指南
- 苹果推送通知服务(APNs)编程
- Apple Push Notification Services (APNS)苹果推送通知服务
- 苹果原生推送服务
- 苹果通知推送服务(APNS)一些关键特性摘要
- ZPush--基于netty4实现的苹果通知推送服务(APNs)Javaclient
- 苹果通知推送服务(APNS)一些关键特性摘要
- 苹果推送通知服务(APNs)编程
- 苹果信息推送服务(Apple Push Notification Service)使用总结
- 苹果信息推送服务(Apple Push Notification Service)使用总结