• Java实现IOS推送(Javapns2.2)


    此程序需要Javapns 2.2版本。

    import java.util.ArrayList;
    import java.util.List;
    
    import javapns.Push;
    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.commons.lang.StringUtils;
    
    public class ApnsSend
    {
        public static void main(String[] args) throws Exception
        {
            String deviceToken = "d7e6132895b388cf016433167c9e2d97fe4b76ca5a1692209a3b6e3cb3fdcd9c";
            String alert = "我的push测试";//push的内容
            int badge = 100;//图标小红圈的数值
            String sound = "default";//铃音
    
            List<String> tokens = new ArrayList<String>();
            tokens.add(deviceToken);
            String certificatePath = "D:/PushDev.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();
            }
        }
    }
  • 相关阅读:
    一个高级的makefile文件
    poj3616题(动态规划),看了别人的提示,自己又写了一遍
    浅谈C++ IO标准库(1)
    https证书安装踩坑
    一个简单通知服务的开发和搭建
    WCF学习笔记
    线程(Thread)、线程池(ThreadPool)技术
    BackgroundWorker与线程使用
    使用ITextSharp生成PDF文件心得
    值类型与引用类型
  • 原文地址:https://www.cnblogs.com/lihaozy/p/2957904.html
Copyright © 2020-2023  润新知