美文网首页java专题
使用java代码实现推送IOS消息

使用java代码实现推送IOS消息

作者: H_Man | 来源:发表于2017-08-24 19:25 被阅读44次

    新的工作中涉及到了给APP端推送消息,初次接触这方面知识,找了个Demo 记录一下

    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;
    
    public class PushMsg {
        public static void main(String[] args) throws Exception{
    
                System.out.println("zsl==========开始推送消息");
                int badge = 1; // 图标小红圈的数值
                String sound = "default"; // 铃音
                String msgCertificatePassword = "password";//导出证书时设置的密码
                String deviceToken = "your_mobile_token"; //手机设备token号
                String message = "test push message to ios device";
    
                List<String> tokens = new ArrayList<String>();
                tokens.add(deviceToken);
    
    //          String certificatePath = requestRealPath
    //                  + "/WEB-INF/classes/certificate/msg.p12";
                //java必须要用导出p12文件  php的话是pem文件
                String certificatePath = "C:\\444.p12";
                boolean sendCount = true;
    
                PushNotificationPayload payload = new PushNotificationPayload();
                payload.addAlert(message); // 消息内容
                payload.addBadge(badge);
                payload.addCustomDictionary("uid", "haahi"); 
                payload.addCustomDictionary("type", 12); 
                payload.addCustomDictionary("title", "haahi"); 
                payload.addSound("default.caf");// 铃音
               
    
                PushNotificationManager pushManager = new PushNotificationManager();
                // true:表示的是产品测试推送服务 false:表示的是产品发布推送服务
                pushManager.initializeConnection(new AppleNotificationServerBasicImpl(
                        certificatePath, msgCertificatePassword, false));
                List<PushedNotification> notifications = new ArrayList<PushedNotification>();
                // 开始推送消息
                if (sendCount) {
                    Device device = new BasicDevice();
                    device.setToken(deviceToken);
                    PushedNotification notification = pushManager.sendNotification(
                            device, payload, false);
                    notifications.add(notification);
                } else {
                    List<Device> devices = new ArrayList<Device>();
                    for (String token : tokens) {
                        devices.add(new BasicDevice(token));
                    }
                    notifications = pushManager.sendNotifications(payload, devices);
                }
    
                List<PushedNotification> failedNotification = PushedNotification
                        .findFailedNotifications(notifications);
                List<PushedNotification> successfulNotification = PushedNotification
                        .findSuccessfulNotifications(notifications);
                int failed = failedNotification.size();
                int successful = successfulNotification.size();
                System.out.println("zsl==========成功数:" + successful);
                System.out.println("zsl==========失败数:" + failed);
                pushManager.stopConnection();
                System.out.println("zsl==========消息推送完毕");
        }
    }
    
    pom
            <dependency>
                <groupId>com.github.fernandospr</groupId>
                <artifactId>javapns-jdk16</artifactId>
                <version>2.2.1</version>
            </dependency>
    

    相关文章

      网友评论

        本文标题:使用java代码实现推送IOS消息

        本文链接:https://www.haomeiwen.com/subject/zaoedxtx.html