随笔 - 307  文章 - 0  评论 - 30  阅读 - 79万

Java实现IOS推送(利用javapns1.6)

 

复制代码
import java.util.HashMap;
import java.util.Iterator;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
 

import javapns.back.PushNotificationManager;
import javapns.back.SSLConnectionHelper;
import javapns.data.Device;
import javapns.data.PayLoad;

public class MainApnsSend {
    public static void main(String[] args) throws Exception {
       
        try {
            String deviceToken = "d7e6132895b388cf016433167c9e2d97fe4b76ca5a1692209a3b6e3cb3fdcd9c";
            
            
            //被推送的iphone应用程序标示符      
            PropertyConfigurator.configure("bin/log4j.properties");
            Logger console = Logger.getLogger(MainApnsSend.class);
              
            PayLoad payLoad = new PayLoad();
            payLoad.addAlert("彩通万岁!OLALA!!AAAA");
            payLoad.addBadge(1);
            payLoad.addSound("default");
            
            PushNotificationManager pushManager = PushNotificationManager.getInstance();
            pushManager.addDevice("iPhone", deviceToken);
            
            String host= "gateway.sandbox.push.apple.com";  //测试用的苹果推送服务器
            int port = 2195;
            String certificatePath = "D:/PushDev.p12"; //刚才在mac系统下导出的证书
              
            String certificatePassword= "123456";
            
            pushManager.initializeConnection(host, port, certificatePath,certificatePassword, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
              
            //Send Push
            Device client = pushManager.getDevice("iPhone");
            pushManager.sendNotification(client, payLoad); 
            pushManager.stopConnection();
            pushManager.removeDevice("iPhone");
            System.out.println("push succeed!");
        }
        catch (Exception e) {
            //e.printStackTrace();
            System.out.println("e.getMessage() = " + e.getMessage());
        }
             
    }
}
复制代码

 

需要用到的jar包

bcprov-jdk16-145-1.jar

commons-io-2.0.1.jar

commons-lang-2.5.jar

javapns-jdk16-163.jar

log4j-1.2.16.jar

 

 

 

posted on   kkmm  阅读(4908)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
历史上的今天:
2012-03-13 sqlserver 2000备份文件还原到sqlserver 2005(2008)
< 2013年3月 >
24 25 26 27 28 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

点击右上角即可分享
微信分享提示