当前位置:编程学习 > JAVA >>

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); 
             
            } 
        

补充:移动开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,