IOS 基于APNS消息推(JAVA后台)

来源:互联网 发布:秋冬日系男装搭配 知乎 编辑:程序博客网 时间:2024/06/05 23:43
  • 直接上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.jar
    commons-lang3-3.1.jar
    JavaPNS_2.2.jar
    log4j-1.2.17.jar

    • demo链接

    http://files.cnblogs.com/files/duke-cui/Apns.zip

    0 0
    原创粉丝点击