IOS 基于APNS消息推(JAVA后台)
2016-07-30 06:26
295 查看
直接上Demo
import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.StringUtils; 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; public class PushPNS { public static void main(String[] args) throws Exception { // 设备的 Token 值 String deviceToken = "4f9e701ce3cb47173e3b3da5cdeb677297157b6be616689677e8e13c9b9ae652"; // push的内容 String alert = "我的push测试"; // 图标小红圈的数值 int badge = 1; // 铃音 String sound = "default"; List<String> tokens = new ArrayList<String>(); tokens.add(deviceToken); // 推送证书的路径 String certificatePath = "/Users/ivy/Desktop/Duke/Eclipse/JinanLine/WebContent/acer.p12"; // 证书的密码 String certificatePassword = "123456";// 此处注意导出的证书密码不能为空因为空密码会报错 boolean sendCount = true; try { PushNotificationPayload payLoad = new PushNotificationPayload(); payLoad.addAlert(alert); // 消息内容 payLoad.addBadge(badge); // iphone应用图标上小红圈上的数值、 if (!StringUtils.isBlank(sound)) { payLoad.addSound(sound); // 铃音 } PushNotificationManager pushManager = new PushNotificationManager(); // true:表示的是产品发布推送服务 false:表示的是产品测试推送服务 pushManager .initializeConnection(new AppleNotificationServerBasicImpl( certificatePath, certificatePassword, false)); List<PushedNotification> notifications = new ArrayList<PushedNotification>(); // 发送push消息 if (sendCount) { Device device = new BasicDevice(); device.setToken(tokens.get(0)); PushedNotification notification = pushManager.sendNotification( device, payLoad, true); notifications.add(notification); } else { 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(); pushManager.stopConnection(); } catch (Exception e) { e.printStackTrace(); } } }
需要导入的包
bcprov-jdk15on-151.jarcommons-lang3-3.1.jar
JavaPNS_2.2.jar
log4j-1.2.17.jar
demo链接
http://files.cnblogs.com/files/duke-cui/Apns.zip相关文章推荐
- java集合源码解析(二)--AbstractCollection
- 【转】java图形界面设计(AWT)
- Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库
- Java嵌入式数据库H2学习总结(一)——H2数据库入门
- JavaWeb学习总结(四十九)——简单模拟Sping MVC
- JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
- javaweb学习总结(四十七)——监听器(Listener)在开发中的应用
- javabean在jsp页面的使用
- javaweb学习总结(四十五)——监听器(Listener)学习二
- javaweb学习总结(四十四)——监听器(Listener)学习
- javaweb学习总结(四十三)——Filter高级开发
- javaweb学习总结(四十)——编写自己的JDBC框架
- 安卓Studio的eclipse模式快捷键
- Eclipse错误:找不到或无法加载主类
- 第二章-Java并发机制的底层实现原理
- 高效并发-Java内存模型和线程
- 基于spring-cloud实现eureka注册服务小案例
- java设计模式之单例模式
- Java流
- Spring框架中context-param与servlet中init-param的contextConfigLocation的区别