`
linyu19872008
  • 浏览: 284060 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

苹果推送 JAVA

 
阅读更多

本方案采用了JAVAPNS,下载地址为:http://code.google.com/p/javapns/

代码如下:

import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;

import javapns.notification.AppleNotificationServer;
import javapns.notification.AppleNotificationServerBasicImpl;
import javapns.notification.PayloadPerDevice;
import javapns.notification.PushNotificationPayload;
import javapns.notification.transmission.NotificationProgressListener;
import javapns.notification.transmission.NotificationThread;
import javapns.notification.transmission.NotificationThreads;

/**
 * 苹果通知
 * 
 * @author Administrator
 * 
 */
public class AppleNotification {

	/**
	 * 日志输出类
	 */
	private static Logger logger = Logger.getLogger(AppleNotification.class
			.getName());

	/**
	 * 苹果消息推送
	 * 
	 * @param certificatePath
	 *            证书路径
	 * @param certificatePassword
	 *            证书密码
	 * @param deviceToken
	 *            设备标识
	 * @param msg
	 *            消息内容
	 * @param msgCount
	 *            消息数
	 * @param host
	 *            苹果推送服务器域名(开发:gateway.sandbox.push.apple.com ;
	 *            正式:gateway.push.apple.com)
	 * @return
	 */
	public boolean push(String certificatePath, String certificatePassword,
			String deviceToken, String msg, int msgCount, String host,
			boolean isProduction) {

		String keystore = certificatePath;// 证书路径和证书名
		String password = certificatePassword; // 证书密码
		String token = deviceToken;// 手机唯一标识
		boolean production = isProduction; // 设置true为正式服务地址,false为开发者地址
		int threadThreads = 10; // 线程数
		try {
			// 建立与Apple服务器连接
			AppleNotificationServer server = new AppleNotificationServerBasicImpl(
					keystore, password, production);
			List<PayloadPerDevice> list = new ArrayList<PayloadPerDevice>();
			PushNotificationPayload payload = new PushNotificationPayload();
			payload.addAlert(msg);
			payload.addSound("default");// 声音
			payload.addBadge(msgCount);// 图标小红圈的数值
			PayloadPerDevice pay = new PayloadPerDevice(payload, token);// 将要推送的消息和手机唯一标识绑定
			list.add(pay);

			NotificationThreads work = new NotificationThreads(server, list,
					threadThreads);//
			work.setListener(DEBUGGING_PROGRESS_LISTENER);// 对线程的监听,一定要加上这个监听
			work.start(); // 启动线程
			work.waitForAllThreads();// 等待所有线程启动完成

		} catch (Exception e) {
			logger.error(e.getMessage());
			return false;
		}
		return true;
	}

	public static final NotificationProgressListener DEBUGGING_PROGRESS_LISTENER = new NotificationProgressListener() {

		public void eventThreadStarted(NotificationThread notificationThread) {
			logger.info("   [EVENT]: thread #"
					+ notificationThread.getThreadNumber() + " started with "
					+ " devices beginning at message id #"
					+ notificationThread.getFirstMessageIdentifier());
		}

		public void eventThreadFinished(NotificationThread thread) {
			logger.info("   [EVENT]: thread #"
					+ thread.getThreadNumber() + " finished: pushed messages #"
					+ thread.getFirstMessageIdentifier() + " to "
					+ thread.getLastMessageIdentifier() + " toward "
					+ " devices");
		}

		public void eventConnectionRestarted(NotificationThread thread) {
			logger.info("   [EVENT]: connection restarted in thread #"
					+ thread.getThreadNumber() + " because it reached "
					+ thread.getMaxNotificationsPerConnection()
					+ " notifications per connection");
		}

		public void eventAllThreadsStarted(
				NotificationThreads notificationThreads) {
			logger.info("   [EVENT]: all threads started: "
					+ notificationThreads.getThreads().size());
		}

		public void eventAllThreadsFinished(
				NotificationThreads notificationThreads) {
			logger.info("   [EVENT]: all threads finished: "
					+ notificationThreads.getThreads().size());
		}

		public void eventCriticalException(
				NotificationThread notificationThread, Exception exception) {
			logger.info("   [EVENT]: critical exception occurred: "
					+ exception);
		}
	};
}

 

 

 

 

分享到:
评论

相关推荐

    苹果消息推送 java端

    苹果消息推送(Apple Push Notification service, APNs)是苹果公司为开发者提供的一项服务,用于向iOS、iPadOS、watchOS、tvOS以及macOS设备发送远程通知。在Java环境中实现APNs推送,需要掌握以下几个核心知识点:...

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

    Java向苹果服务器推送消息是iOS应用开发者经常遇到的需求,用于实时通知用户新的信息或系统状态。APNs(Apple Push Notification service)是苹果公司提供的推送服务,允许开发者将消息推送到用户的iOS设备上。本...

    苹果ios推送java服务端耗码demo

    【苹果iOS推送Java服务端详解】 在iOS应用开发中,苹果提供了远程通知(Apple Push Notification service,简称APNs)服务,使得开发者可以向用户的设备发送消息,即使应用没有在前台运行也能接收到这些消息。本篇...

    Java苹果推送源代码

    Java苹果推送源代码是针对iOS设备的Apple Push Notification service(APNs)的开发工具,它允许开发者使用Java语言进行远程通知的发送。APNs是苹果公司提供的服务,用于向运行iOS、iPadOS、watchOS、macOS等系统的...

    java实现给Iphone推送消息

    APNS(Apple Push Notification Service)苹果推送通知服务。该技术由苹果公司提供的APNS服务。工作原理:首先,APNS会对用户进行物理连接认证,和设备令牌认证(简言之就是苹果的服务器检查设备里的证书已确定其为...

    ios 消息推送 java后端demo(包括jar包)

    这个“ios 消息推送 java后端demo”是为开发者提供的一个示例,帮助理解如何使用Java后端实现对iOS设备的消息推送。下面将详细介绍iOS消息推送的原理、Java后端实现以及压缩包中可能包含的内容。 一、iOS消息推送...

    java进行苹果APNS消息推送

    Java进行苹果APNS(Apple Push Notification Service)消息推送是一项在iOS和macOS应用程序中实现远程通知功能的关键技术。本文将详细介绍如何使用Java实现这一过程,同时关注`javapns`库和`bcprov-jdk`加密组件的...

    基于Java语言实现的苹果推送服务APNS4J设计源码

    该项目是一款基于Java语言实现的苹果推送服务APNS客户端库——APNS4J的设计源码,共包含37个文件,主要包括31个Java源文件、1个Git忽略文件、1个YAML配置文件、1个LICENSE文件、1个README文本文件、1个Markdown文件...

    极光推送JAVA服务端集成 jpush-api-java-client-master

    【极光推送JAVA服务端集成 jpush-api-java-client-master】是一个专门为Java开发者设计的极光推送(JPush)服务端SDK。极光推送是面向移动应用开发者提供的一套消息推送服务,它可以帮助开发者轻松实现向Android、...

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

    本篇文章将详细介绍如何在服务器端使用Java来实现iPhone的推送通知功能。 首先,我们需要了解APNs的工作原理。APNs是苹果公司的远程通知服务,当应用程序在后台或未运行时,可以通过APNs将消息推送到用户的设备上。...

    ios推送java写的后台

    在iOS应用开发中,苹果提供了Apple Push Notification service (APNs) 来实现实时的消息推送功能,让应用程序在后台状态下也能接收到服务器的通知。本文将详细介绍如何使用Java编写后端来实现iOS的推送服务。 首先...

    Java向苹果服务器推送消息

    Java APNS推送消息 ------------------------------------------------- 苹果APNS服务器更新,请看新的方法:https://download.csdn.net/download/kerryzb/85443487

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

    苹果推送服务(Apple Push Notification service,简称APNs)是苹果公司提供的一项服务,允许开发者将实时的通知信息推送到iOS、macOS以及watchOS等设备上。这个“APNS 苹果消息推送项目源码,运行即用”包含了实现...

    java apns 推送示例

    Java APNS推送是Java开发中实现向iOS设备发送推送通知的一种技术。APNS(Apple Push Notification Service)是苹果公司提供的一个服务,允许开发者通过服务器端将实时消息推送到用户的iOS设备上,即使应用在后台或者...

    java调用apns推送的实现

    Java调用APNs(Apple Push Notification service)推送是iOS应用开发者在进行远程通知服务时常见的需求。APNs是苹果提供的一项服务,允许开发者将实时消息推送到用户的iOS设备上,如应用更新、消息提醒等。在Java...

    最新java整合APNS推送服务

    Java整合APNS推送服务是将Java应用程序与Apple Push Notification Service(APNS)相结合,以便能够向iOS和tvOS设备发送即时消息。APNS是苹果公司提供的一个服务,它允许开发者在用户不打开应用的情况下,向他们的...

    IOS推送实现(java)

    本文将详细介绍如何使用Java语言来搭建一个iOS推送服务,涵盖所需依赖、详细代码示例以及开发步骤。 一、APNs概述 APNs是苹果公司提供的一个服务,允许开发者向运行iOS、iPadOS、watchOS或tvOS的设备发送远程通知。...

    java给iphone应用实现推送

    在这个过程中,Java作为服务器端的语言,负责发送推送通知到苹果的Push Notification Service(APNs),然后由APNs将这些通知转发给iPhone设备。 首先,我们需要了解Apple Push Notification Service (APNs)的工作...

    个推推送服务实验工程

    在安卓应用开发中,推送服务是一项至关重要的功能,它能够实时地将服务器端的信息传递到用户的设备上,增强用户与应用的互动性。本实验工程“个推推送服务”专注于这个领域,为开发者提供了一个实践平台,以实现透传...

    IOS设备消息推送服务JAVA调用依赖包和实例程序

    在iOS设备上实现消息推送服务,开发者通常会利用苹果的Apple Push Notification service(APNs)。本文将详细讲解如何使用JAVA程序来调用APNs服务,为iOS设备提供消息推送功能,并提供必要的依赖包和实例代码。 ...

Global site tag (gtag.js) - Google Analytics