Chinaunix

标题: iphone push [打印本页]

作者: feiyang10086    时间: 2012-01-19 16:51
标题: iphone push
iphone push




今天很顺利的弄了一个java push iphone的小程序,拿出来和大家分享一下吧。

前期准备工作:



    1. p12文件

    2. 在生成p12文件时所需要的密码

    3. 测试机器的tonken码

    4. 需要以下类库,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





准备工作已经做好,下面就是主要的java代码部分了:
  1.   try {
  2.              String deviceToken = "98ea484fa 4fe8871a eb8e558d 0d443ee4 a89fb3bd 27d07c13 9e5e36a0 d2b726ad";//iphone手机获取的token

  3.               PayLoad payLoad = new PayLoad();
  4.               payLoad.addAlert("我的push测试");//push的内容
  5.               payLoad.addBadge(1);//图标小红圈的数值
  6.               payLoad.addSound("default");//铃音
  7.                         
  8.               PushNotificationManager pushManager = PushNotificationManager.getInstance();
  9.               pushManager.addDevice("iPhone",deviceToken);
  10.               //Connect to APNs
  11.               //************************************************
  12.               //测试的服务器地址:gateway.sandbox.push.apple.com /端口2195
  13.               //                      产品推送服务器地址:gateway.push.apple.com / 2195
  14.               //***************************************************/
  15.               String host= "gateway.sandbox.push.apple.com";
  16.               int port = 2195;
  17.               String certificatePath= "F:\\iphone.p12";//导出的证书
  18.               String certificatePassword= "iphone";//此处注意导出的证书密码不能为空因为空密码会报错
  19.               pushManager.initializeConnection(host, port, certificatePath, certificatePassword, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
  20.                         
  21.               //Send Push
  22.               Device client = pushManager.getDevice("iPhone");
  23.               pushManager.sendNotification(client, payLoad);
  24.               pushManager.stopConnection();

  25.               pushManager.removeDevice("iPhone");
  26.               System.out.println("OK");
  27.              }
  28.              catch (Exception e) {
  29.                    e.printStackTrace();
  30.              }
复制代码
如果测试成功会在控制台打印出"OK"


作者: 如果有一天21    时间: 2012-01-19 22:07
谢谢分享
作者: sychangchun    时间: 2012-01-23 23:55
了解了解。学习了啊。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2