java给iphone应用实现推送
根据公司项目所需,需要对iphone应用进行消息推送,一开始选的是php,但是php语言知识略懂,开发起来比较麻烦,所有就用比较熟悉的java语言进行消息推送。
需要依赖的jar包:
具体代码如下:
[java]
/**
* MainSend.java
* 版权所有(C) 2012
* 创建:cuiran 2012-07-24 11:31:35
*/
package com.wpn.iphone.send;
import java.util.ArrayList;
import java.util.List;
import javapns.devices.Device;
import javapns.devices.implementations.basic.BasicDevice;
import javapns.notification.AppleNotificationServerBasicImpl;
import javapns.notification.PushNotificationManager;
import javapns.notification.PushNotificationPayload;
import javapns.notification.PushedNotification;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* TODO
* @author cuiran
* @version TODO
*/
public class MainSend {
private static Log log = LogFactory.getLog(MainSend.class.getName());
/************************************************
测试推送服务器地址: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.addAlert("iphone推送测试 www.baidu.com"); // 消息内容
payLoad.addBadge(count); // iphone应用图标上小红圈上的数值
payLoad.addSound("default"); // 铃音 默认
PushNotificationManager pushManager = new PushNotificationManager();
//true:表示的是产品发布推送服务 false:表示的是产品测试推送服务
pushManager.initializeConnection(new AppleNotificationServerBasicImpl(path, password, false));
List<PushedNotification> notifications = new ArrayList<PushedNotification>();
// 发送push消息
if (sendCount) {
log.debug("--------------------------apple 推送 单-------");
Device device = new BasicDevice();
device.setToken(tokens.get(0));
PushedNotification notification = pushManager.sendNotification(device, payLoad, true);
notifications.add(notification);
} else {
log.debug("--------------------------apple 推送 群-------");
List<Device> device = new ArrayList<Device>();
for (String token : tokens) {
device.add(new BasicDevice(token));
}
notifications = pushManager.sendNotifications(payLoad, device);
}
 
补充:移动开发 , 其他 ,