java服务推送ios环境配置及java服务代码

这是java 代码:

/************************************************

测试推送服务器地址:gateway.sandbox.push.apple.com /2195 

产品推送服务器地址:gateway.push.apple.com / 2195 


需要javaPNS_2.2.jar包


***************************************************/

/**


    *这是一个比较简单的推送方法,


    * apple的推送方法


    * @param tokens   iphone手机获取的token


    * @param path 这里是一个.p12格式的文件路径,需要去apple官网申请一个 


    * @param password  p12的密码 此处注意导出的证书密码不能为空因为空密码会报错


    * @param message 推送消息的内容


    * @param count 应用图标上小红圈上的数值


    * @param sendCount 单发还是群发  true:单发 false:群发


    */


public void sendpush(List<String> tokens,String path, String password, String message,Integer count,boolean sendCount) {


try {

//message是一个json的字符串{“aps”:{“alert”:”iphone推送测试”}}


PushNotificationPayload payLoad =  PushNotificationPayload.fromJSON(message);

payLoad.addBadge(count); // iphone应用图标上小红圈上的数值

payLoad.addSound("default");// 铃音 默认


PushNotificationManager pushManager = new PushNotificationManager();

//true:表示的是产品发布推送服务 false:表示的是产品测试推送服务

pushManager.initializeConnection(new AppleNotificationServerBasicImpl(path, password,true));

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();

 

if (successful > 0 && failed == 0) {

System.out.print("推送成功"+failedNotifications.toString());

} else if (successful == 0 && failed > 0) {

System.out.print("推送失败"+failedNotifications.toString());

} else if (successful == 0 && failed == 0) {

System.out.print("推送失败"+failedNotifications.toString());

System.out.println("No notifications could be sent, probably because of a critical error");

} else {

System.out.print("推送失败"+failedNotifications.toString());

}

// pushManager.stopConnection();


} catch (Exception e) {

e.printStackTrace();

}


}

//推送测试

public static void main(String[] args) {

Server send=new Server();

List<String> tokens=new ArrayList<String>();

tokens.add("f7ca5af30bc59f55b7eaf7bfc7cc6c9fece18611326be8fbd263ff7f121cfdb8");//设备ID号

String path="pushCert.p12";//p12文件路径

String password="123456";//密码

String message="{'aps':{'alert':'iphone推送测试byBeeChat'}}";//ios 消息必须以这种形式弹出

Integer count=1;

boolean sendCount=false;

send.sendpush(tokens, path, password, message, count, sendCount);

}



最重要,也是最难的那块就是 关于证书制作和生成,如果有两个(cert和key)pem证书,就可以通过下面的方式生成p12文件:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值