package com.fh.util; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import cn.jpush.api.ErrorCodeEnum; import cn.jpush.api.IOSExtra; import cn.jpush.api.JPushClient; import cn.jpush.api.MessageResult; import com.fh.controller.base.BaseController; @Controller @RequestMapping(value="/jpush") public class JPushClientUtil extends BaseController{ private static final String appKey = "737cea7b852bf8c60cecbf51"; // 必填,例如466f7032ac604e02fb7bda89 private static final String masterSecret = "c0e2c47796f2095cbc56a516";// "13ac09b17715bd117163d8a1";//必填,每个应用都对应一个masterSecret private static JPushClient jpush = null; public static final int MAX = Integer.MAX_VALUE; public static final int MIN = (int) MAX / 2; /** * 保存离线的时长。秒为单位。最多支持10天(864000秒)。 * 0 表示该消息不保存离线。即:用户在线马上发出,当前不在线用户将不会收到此消息。 * 此参数不设置则表示默认,默认为保存1天的离线消息(86400秒)。 */ private static long timeToLive = 60 * 60 * 24; public static void main(String[] args) { String msgTitle = "推送测试"; String msgContent = "看到信息了么,看到就推送成功了!"; String userid="7753b9c538de44c791bb44eed1980d39"; pushMessage(msgTitle,msgContent,userid); } private static void init(){ jpush = new JPushClient(masterSecret, appKey, timeToLive); } /** * 给单个人推送消息 * @param msgTitle * @param msgContent * @param userid 用户id(uuid) */ public static void pushMessage(String msgTitle, String msgContent,String userid) { String result = ""; init(); // 在实际业务中,建议 sendNo 是一个你自己的业务可以处理的一个自增数字。 // 除非需要覆盖,请确保不要重复使用。详情请参考 API 文档相关说明。 int sendNo = getRandomSendNo(); // IOS设备扩展参数, 设置badge,设置声音 Map extra = new HashMap(); IOSExtra iosExtra = new IOSExtra(10, "WindowsLogonSound.wav"); extra.put("ios", iosExtra); // 对所有用户发送通知 //手机端方法:sendNotificationWithAppKey //sendCustomMessageWithAppKey //MessageResult msgResult = jpush.sendNotificationWithAppKey(sendNo,msgTitle, msgContent); //MessageResult msgResult = jpush.sendNotificationWithAlias(sendNo,userid, msgTitle, msgContent); //MessageResult msgResult = jpush.sendCustomMessageWithAppKey(sendNo,msgTitle, msgContent); MessageResult msgResult = jpush.sendNotificationWithAppKey(sendNo,msgTitle, msgContent); if (null != msgResult) { result = "服务器返回数据: " + msgResult.toString(); System.out.println(result); if (msgResult.getErrcode() == ErrorCodeEnum.NOERROR.value()) { result = String.format( "发送成功, sendNo= %s,messageId= %s", msgResult.getSendno(), msgResult.getMsg_id() ); System.out.println(result); } else { result = "发送失败, 错误代码=" + msgResult.getErrcode() + ", 错误消息=" + msgResult.getErrmsg() ; System.out.println(result); } } else { System.out.println("无法获取数据"); } } /** * 给多个人推送消息 * @param list */ /*public static void pushManyMessage(List list){ for(int i=0;i