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文件:
- 点赞
- 收藏
- 分享
- 文章举报
- Xamarin ios C#苹果应用开发第二讲配置环境和编写代码
- Mac OS X 10.9下搭建java web开发环境之一 开启和配置本机的Apache服务
- java里 使用apache-ant和cobertura测试代码覆盖率 环境变量配置
- Java软件安装及环境配置(JDK、MySQL、Eclipse、MySQL Front、MySQL Connector/J的安装,并测试eclipse是否连接数据库(附代码))
- 【java/C# 服务器】IOS 配置推送证书 p12文件流程
- IOS 推送-配置与代码编写
- Windows 64位环境的Java 服务配置
- appium+java+ios自动化环境的搭建部分代码,资料的搜集与整合。
- Java发送ios推送消息(APN)的代码示例
- JAVA - 1、Win10 Eclipe Java 环境配置及 代码自动补全 设置
- cenots6.8安装redis,java环境访问,配置文件及部分代码
- centos7nimi版基础服务搭建+java环境配置+Xshell
- 在IOS环境下配置DHCP服务6500
- Linux/Centos环境安装配置Swftools pdf转swf 及java代码转化
- Ubuntu9.04中Java环境的搭建和代码配置
- IOS中关于百度推送的一些配置代码和步骤
- iPhone/iPad/iTouch配置Bash/C/C++/OC/Java/Theos/MySQL/Python开发环境! 让我告诉你iOS的魅力~
- iOS推送的Java后台代码
- 【java/C# 服务器】IOS 配置推送证书 p12文件流程 - 勿以己悲
- [Linux]在Linux上部署Java开发环境笔记(一)-- 补充:Linux下如何手动设置IP及配置DNS服务