`

iphone推送 java代码实现

    博客分类:
  • java
阅读更多

最近在研究iphone推送的java实现,看过发现原来很简单,以下是我根据网上源码修改的程序,具体里面的证书和手机token的生产就不解释了,本人没有搞过iphone,有需要的可以再网上搜索以下,很多也很简单。

public class PushUtils {
 private static Logger logger = LoggerFactory.getLogger(PushUtils.class);

 /************************************************
 测试推送服务器地址:gateway.sandbox.push.apple.com /2195
 产品推送服务器地址:gateway.push.apple.com / 2195
 ***************************************************/
 private static String host = "gateway.sandbox.push.apple.com";
 private static int port = 2195;

 public static void main(String[] args) throws Exception {

  String deviceToken = "f2a070af d6fc27ca c1844810 f6904fcd b28e6fc7 1d207d63 5a01f1af e0850f0a";//iphone手机获取的token
  String deviceToken2 = "0c0028e4 ca4049d6 52dfdafb c4b37c25 2c0386aa d14545eb f3859b56 d5593c23";//iphone手机获取的token
  List<String> deviceTokens = new ArrayList<String>();
  deviceTokens.add(deviceToken);
  deviceTokens.add(deviceToken2);

  String content = "此次升级更新的东西";//push的内容
  String p12File = "d:/push2.p12";//这里是一个.p12格式的文件路径,需要去apple官网申请一个  
  String p12FilePassword = "wiscom";//此处注意导出的证书密码不能为空因为空密码会报错
  push2More(p12File, p12FilePassword, deviceTokens);//群组推送
  push2One(p12File, p12FilePassword, deviceToken2);//单个推送

 }

 /**
  * 向单个iphone手机推送消息.
  * @param deviceToken iphone手机获取的token
  * @param p12File .p12格式的文件路径
  * @param p12Pass .p12格式的文件密码
  * @param customDictionarys CustomDictionary字典组
  * @param content 推送内容
  */
 public static void push2One(String p12File, String p12Pass, String deviceToken, String content) {
  try {
   PayLoad payLoad = new PayLoad();
   payLoad.addAlert(content);//push的内容
   payLoad.addBadge(1);//应用图标上小红圈上的数值
   payLoad.addSound("default");//铃音

   //添加字典
   payLoad.addCustomDictionary("url", "www.baidu.com");
   PushNotificationManager pushManager = PushNotificationManager.getInstance();
   pushManager.addDevice("iphone", deviceToken);

   //链接到APNs
   pushManager.initializeConnection(host, port, p12File, p12Pass, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

   //开始推送
   Device client = pushManager.getDevice("iphone");
   pushManager.sendNotification(client, payLoad);
   //断开链接
   pushManager.stopConnection();
   pushManager.removeDevice("iphone");
   logger.info("iphone 推送消息成功");
  } catch (Exception e) {
   //   System.out.println("iphone 推送消息异常:" + e.getMessage());
   logger.error("iphone 推送消息异常:" + e.getMessage());
  }
 }

 /**
  * 向iphone群组推送消息.
  * @param deviceTokens iphone手机获取的token
  * @param p12File .p12格式的文件路径
  * @param p12Pass .p12格式的文件密码
  * @param customDictionarys CustomDictionary字典
  * @param content 推送内容
  */
 public static void push2More(String p12File, String p12Pass, List<String> deviceTokens, String content) {
  try {
   PayLoad payLoad = new PayLoad();
   payLoad.addAlert(content);//push的内容
   payLoad.addBadge(1);//应用图标上小红圈上的数值
   payLoad.addSound("default");//铃音

   //添加字典
    payLoad.addCustomDictionary("url", "www.baidu.com");
   PushNotificationManager pushManager = PushNotificationManager.getInstance();

   //链接到APNs
   pushManager.initializeConnection(host, port, p12File, p12Pass, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

   //开始循环推送
   for (int i = 0; i < deviceTokens.size(); i++) {
    pushManager.addDevice("iphone" + i, deviceTokens.get(i));
    Device client = pushManager.getDevice("iphone" + i);
    pushManager.sendNotification(client, payLoad);
   }
   //断开链接
   pushManager.stopConnection();
   for (int i = 0; i < deviceTokens.size(); i++) {
    pushManager.removeDevice("iphone" + i);
   }
   logger.info("iphone 推送消息成功");
   //   System.out.println("iphone 推送消息成功");
  } catch (Exception e) {
   logger.error("iphone 推送消息异常:" + e.getMessage());
   //   System.out.println("iphone 推送消息异常:" + e.getMessage());
  }
 }
}

分享到:
评论
3 楼 erwin_king 2012-01-10  
抱歉啊,很久没上来看看了,恢复晚了。群组推送就是讲你要推送的手机token循环一遍,然后再循环关闭一遍就可以了
2 楼 james.zhou 2011-12-21  
CJSen 写道
可以解释一下   push2More(p12File, p12FilePassword, deviceTokens);//群组推送  吗??

应该就是给多个iphone客户端push消息吧,我看他就是把deviceTokens循环了一下
1 楼 CJSen 2011-12-19  
可以解释一下   push2More(p12File, p12FilePassword, deviceTokens);//群组推送  吗??

相关推荐

    Java向苹果服务器推送消息(Java实现HTTP/2协议发送APNS)

    要使用Java实现APNs推送,你需要以下组件: 1. **证书和密钥**:首先,你需要从Apple Developer Portal获取一个APNs证书和对应的私钥。这些文件通常以.p12格式提供,包含了你的开发者身份验证信息。 2. **Java ...

    iphone 推送通知 服务器端java 实现

    在iOS应用开发中,为了实现在用户...以上就是关于“iPhone推送通知服务器端Java实现”的详细说明,希望对你理解并实际操作APNs推送有所帮助。在实际开发中,记得遵循苹果的开发者指南,确保推送通知的合规性和有效性。

    java给iphone应用实现推送

    Java为iPhone应用实现推送服务主要涉及的是远程通知技术,这是iOS设备与服务器间通信的一种方式,使得即使应用程序在后台或关闭状态下,也能接收到新消息、更新或其他重要信息。在这个过程中,Java作为服务器端的...

    JAVA JavaPNS-2.2 实现iphone的推送通知

    JavaPNS是Java平台上用于实现Apple Push Notification Service (APNs)的一个开源库,版本2.2提供了对iPhone设备推送通知的支持。APNs是苹果公司提供的一个服务,允许开发者向iOS、iPadOS以及watchOS设备发送远程通知...

    iphone推送通知开发 java后台 可实现群发

    可实现向所有用户发送通知,实现群推送,java后台代码。网上简易代码一般只能单发

    java版的简单iphone推送

    本文将详细介绍如何使用Java实现一个简单的iPhone推送功能,包括所需的技术栈、核心步骤以及注意事项。 #### 技术背景 苹果公司为了方便开发者向iOS设备发送推送通知,推出了自己的推送服务——Apple Push ...

    APNS 苹果消息推送项目源码,运行即用,代码+数据库+文档全打包

    这个“APNS 苹果消息推送项目源码,运行即用”包含了实现APNs推送功能的完整项目,非常适合希望自主管理苹果设备消息推送的开发者。 首先,让我们详细了解一下APNs的基本概念。APNs是苹果为开发者提供的一个接口,...

    java向苹果apns实现推送所需jar包

    Java 向苹果APNs(Apple Push Notification service)实现推送服务是一项关键的技术任务,尤其是在开发针对iOS设备的应用程序时。为了在Java环境中构建这样的系统,开发者需要依赖特定的库和工具,其中jar包扮演了...

    基于Java的 iOS 推送通知

    以下是一段使用JavaPNS进行推送通知的Java代码: ```java String deviceToken = "b329a641f4daabd7cbb9170f55821ee80559ea8b694c23797406785a33484ec8"; PayLoad payLoad = new PayLoad(); payLoad.addAlert("钱宝...

    聊天软件抢红包实现思路与代码

    6. **代码实现**:在实际编程中,可能会使用如Java、Kotlin(Android平台)或Swift、Objective-C(iOS平台)等语言。关键类可能包括红包模型(红包金额、个数等信息)、红包监听器(用于捕获红包消息)、抢红包逻辑...

    JavaPNS_2.2.zip iphone push

    JavaPNS是一个开源的Java库,专为开发者设计,用于向Apple设备,特别是iPhone和iPad,发送Apple Push Notification Service(APNs)推送通知。在JavaPNS 2.2版本中,这个库提供了简单易用的API,允许开发者在Java...

    java电商平台(学生测试版)

    【描述】这个Java电商平台项目在实现过程中可能存在诸多问题,比如代码可能没有进行充分的注释,这增加了理解和维护的难度。然而,通过分模块运行和测试,可以逐步了解各个部分的功能。这为学习者提供了实际操作的...

    SPDY for iPhone.zip

    4. **服务器推送**:服务器可以预推送资源,即便客户端尚未请求,这种机制减少了页面加载时间。 5. **安全性**:SPDY 支持 TLS/SSL 加密,确保数据传输的安全性,与 HTTPS 协议兼容。 **集成 SPDY for iPhone 到 ...

    APNS push例子

    在给定的`MainSend.java`文件中,我们可以预见到它可能是Java服务器端实现APNs推送的代码。通常,它会包含如下关键部分: - 导入必要的库,如`com.sun.net.httpserver.HttpServer`和`javax.net.ssl.SSLContext`。 -...

    javapns-jdk16-163.jar.zip

    在Android应用开发中,我们经常会遇到需要推送通知的需求,而JavaPNS(Java Push Notification Service)就是一个用于实现Apple Push Notification Service (APNS) 的Java库。本文将详细解析“javapns-jdk16-163.jar...

    bcprov-jdk15on-147

    在描述中提到"用于iPhone的推送",这可能指的是该库在iOS应用开发中的应用,特别是在使用Java后端进行苹果设备(iPhone)的远程推送通知服务(APNs,Apple Push Notification service)时。APNs需要开发者在后端生成...

    Android应用源码45套安卓源码合集.zip

    Android应用源码基于百度云推送的聊天工具源码.rar Android应用源码安卓多边形布局例子.rar Android应用源码安卓拍照上传实现代码附带php端.rar Android应用源码实现动态交叉布局.rar Android应用源码小说翻页效果...

    Airplay投屏Android接收端项目,兼容最新iOS系统

    这个项目是关于在Android设备上实现AirPlay的接收端功能,使得Android设备能够接收来自iOS系统的音视频推送,特别是在iOS9及更高版本的系统上。AirPlay的私有协议通常对第三方开发者不开放,因此破解这一协议是一项...

    IOS-MDM-Server:为 Java 部署 iPhone 和 iPad 移动设备管理

    这包括获取APNs证书、设置推送服务,并编写相应的Java代码来处理推送通知。 3. **JSON Web Tokens (JWT)**:Apple MDM协议要求使用JWT来验证服务器的身份。Java开发者需要了解JWT的生成和验证机制,以及如何在...

Global site tag (gtag.js) - Google Analytics