javapns是一个java实现的APNs的provider库,利用这个库可以向apple的APNs服务器推送基本的以及自定义的APNs消息、从APNs服务器接收详细发送情况报告(error packet)和查询反馈信息(feedback)。下面介绍其基本的用法。
一、下载javapns库和其依赖的库:
svn checkout http://javapns.googlecode.com/svn/trunk/ javapns-read-only
· commons-lang-2.4.jar
· commons-io-1.4.jar
· bcprov-jdk15-146.jar
· log4j-1.2.15.jar
这几个都是开源库。
在工程中导入这几个库。
二、推送通知的方法:
Push.alert:推送一条仅包含alert的消息
Push.sound:推送一条仅包含sound的消息
Push.badge:推送一条仅包含badge的消息
Push.combine:推送一条包含alert,sound,badge的消息
也可以自己构造Payload,然后传递给Push.payload方法发送一个payload,给一个或多个设备。或者调用Push.payloads方法把payload一对一的发送给设备,这个需要预先构造PayloadPerDevice类的实例。
自己构造构造Payload的实例的基本方法:
PushNotificationPayload payload = new PushNotificationPayload();
//声明一个空的payload
payload.setExpiry(1);
//设置payload的过期时间
payload.addAlert("alert message");
//设置alert消息
payload.addBadge(3);
//设置badge值
payload.addSound("beep.wav");
//设置声音
payload.addCustomAlertActionLocKey("launch apns");
//设置ActionLocKey
payload.addCustomAlertLocKey("locKey");
//设置LocKey
payload.addCustomDictionary("custom1", "value1");
//增加一个自定义键值对
List<PushedNotification> notifications = Push.payload(payload, "apns-key+cert-exported-from-mac.p12", "hadoop",
false,
"def981279b88b3a858b9dc9ea35b893175d5d190e2a271d448ee0679ad5bd880");
//调用Push.payload方法发送这个payload,发回一个已发送的notification的列表
三、处理APNs服务器的反馈
苹果的推送服务器提供两个的反馈系统,实际生产过程中,要对两个反馈系统中的反馈消息都进行检查,不能只用其一。这两个反馈系统是:Feedback Service vs Error-response packets 。
javapns系统已经对这两种反馈系统提供的良好的支持。
(1)Error-response packets
在发送消息之后返回的PushedNotification的response成员中,会保存有苹果返回的Error-response packets的信息,若消息推送为发生错误,则该成员为空null。可通过如下方法使用:
for (PushedNotification notification : notifications) {
response = notification.getResponse();
if(response != null)
{
response.getMessage();
System.out.println(response.getMessage());
}
if (notification.isSuccessful())
{
System.out.println("Push notification sent successf ully to: " + notification.getDevice().getToken());
}
else
{
String invalidToken =
notification.getDevice().getToken();
}
}
2)feedback service
feedback service会列出apple 服务器认为永远不可达的设备(可能是由于你的client端的应用程序已被删除等原因)。可通过如下方法使用feedback:
List<Device> devList = Push.feedback("apns-key+cert-exported-from- mac.p12", "hadoop", false);
for(Device basicDevice: devList)
{
System.out.println(basicDevice.getToken());
System.out.println(basicDevice.getDeviceId());
}
转载自:http://www.mc2lab.com/?p=724
分享到:
相关推荐
JavaPNS是Java平台上的一个开源库,专为与Apple Push Notification Service (APNS)进行交互而设计。这个库使得开发者能够轻松地从Java应用程序发送推送通知到iOS和macOS设备。JavaPNS_2.2是该库的一个版本,包含了...
JavaPNS是Java平台上用于与Apple Push Notification Service (APNs)交互的一个开源库,主要针对iOS设备进行远程通知的发送。版本2.2是该库的一个更新,提供了更稳定的性能和可能的新特性。下面我们将详细探讨JavaPNS...
JavaPNS是Java平台上用于实现Apple Push Notification Service (APNS) 的一个开源库,主要用来向iOS设备发送推送通知。这个库的版本2.2和2.2.1是两个不同迭代的版本,可能包含了一些优化和修复了之前版本中的问题。...
JavaPNS是Java平台上用于实现Apple Push Notification Service (APNs)的一个开源库,版本2.2提供了对iPhone设备推送通知的支持。APNs是苹果公司提供的一个服务,允许开发者向iOS、iPadOS以及watchOS设备发送远程通知...
JavaPNS是一个开源的Java库,专为开发者设计,用于向Apple设备,特别是iPhone和iPad,发送Apple Push Notification Service(APNs)推送通知。在JavaPNS 2.2版本中,这个库提供了简单易用的API,允许开发者在Java...
《JavaPNS与Android开发:深入理解javapns-jdk16-163.jar库》 在Android应用开发中,我们经常会遇到需要推送通知的需求,而JavaPNS(Java Push Notification Service)就是一个用于实现Apple Push Notification ...
JavaPNS 2.2 是一个专门为Java开发者设计的推送通知服务库,它允许开发者通过Apple Push Notification Service (APNS) 或者 Google Cloud Messaging (GCM) 向iOS和Android设备发送推送通知。这个库提供了方便的API,...
JavaPNS(Java Push Notification Service)是一个开源的Java库,专为开发者设计,用于与Apple Push Notification service (APNs) 和 Google Cloud Messaging (GCM,现已被Firebase Cloud Messaging, FCM所取代) ...
JavaPNS是一个开源库,专为Java开发者设计,用于与Apple Push Notification Service (APNs)交互,即向iOS和watchOS设备发送推送通知。在Java后台应用中使用JavaPNS,可以简化与APNs服务器通信的过程,使得开发人员...
javapns是一个java实现的APNs的provider库,利用这个库可以向apple的APNs服务器推送基本的以及自定义的APNs消息、从APNs服务器接收详细发送情况报告(error packet)和查询反馈信息(feedback); 这是从官方下载的...
JavaPNS和Bouncy Castle是两个在Java开发中常见的库,尤其在处理特定功能时非常有用。这里我们详细探讨一下这两个库以及它们在Java环境中的作用。 JavaPNS(Java Push Notification Service)是一个开源Java库,专...
ios手机推送信息关键服务器jar包,这是用于连接iphone提供的服务器推送消息。
Java iOS 消息推送依赖于特定的库,如在标题和描述中提到的 `bcprov-jdk15on-149.jar` 和 `javapns-jdk16-163.jar`,这两个库是实现Apple Push Notification Service (APNS)的关键组件。APNS是苹果公司提供的一项...
JavaPNS是Java平台上用于与Apple Push Notification Service (APNs)交互的一个库,它使得Java开发者能够方便地向iOS和macOS设备发送推送通知。在标题"javapns-jdk16-2.2.1.rar_Java编程_Java_"中,我们可以看到这是...
JavaPNS是一个开源的Java库,专为开发者提供与Apple Push Notification Service (APNS)交互的能力。APNS是苹果公司提供的服务,允许开发者向iOS、iPadOS和macOS设备发送远程通知。JavaPNS库简化了这个过程,使得Java...
Java实现iOS推送主要是通过使用第三方库,如javapns,来与Apple Push Notification Service (APNs)进行交互。下面我们将深入探讨这个话题。 首先,让我们理解APNs。APNs是苹果公司提供的一个服务,它允许开发者向...
#testpush ##开发工具 下载 , ##maven配置 下载了lastest version,文件名:apache-maven-3.2.1-bin.tar.gz 将解压在当前目录下。 将解压后的apache-maven-3.2.1文件夹移到/usr/local/maven目录(不存在则新建)下...
本文将详细介绍如何使用Java实现这一过程,同时关注`javapns`库和`bcprov-jdk`加密组件的使用。 首先,APNS是苹果公司提供的服务,允许开发者向其应用的用户发送即时消息,如通知、提醒或应用内更新。这种服务通过...