今天,前端那面告诉我让我在加新闻资讯后要给Iphone终端推送消息,说白了,就是web CMS这面点一下新闻发布,之后,Iphone那面就嘀嘀响一下,之后,有窗口提示,应用图标右上角有一个标示数字,就这个意思。后来写了一个简单的实现,没有加上业务逻辑,其中Iphone的token与应用证书我也不知道是什么,搞Iphone开发的同事给我的,如果你不知道也没关系,问你的Iphone的同事,或者直接百度。
import java.util.HashMap;
import java.util.Iterator;
import javapns.back.PushNotificationManager;
import javapns.back.SSLConnectionHelper;
import javapns.data.Device;
import javapns.data.PayLoad;
public class IphonePush {
public static void main(String[] args) throws Exception {
String token = "6a4f7425 3469355e f3921173 2ec53f58 09a6f789 8ddfe681 1fca5845 d400ca51";
String news = "IphonePush!!!";
myPush(token, news);
}
public static void myPush(String token, String news){
try {
//6a4f7425 3469355e f3921173 2ec53f58 09a6f789 8ddfe681 1fca5845 d400ca51
String deviceToken = token;//iphone手机的token
PayLoad payLoad = new PayLoad();
payLoad.addAlert(news);//push内容
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:/push/XYMBusinessAPNS.p12";//iPhone应用推送证书
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");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
其中,需要向项目中导入几个包,分别是:
JavaPNS_2.2.jar ,javapns-jdk16-163..jar,log4j-1.2.16.jar,commons-io-2.1.jar,commons-lang-2.4.jar,bcprov-jdk16-145-1.jar
如果没有请自行下载