今天试用了极光推送API
用它是因为,大多数人说它的文档是最全的,但是用过之后,发现关于IOS的文档,还是很不够,导致走了一点弯路!
特别是服务端的代码:https://github.com/jpush/jpush-api-java-client for java
Java代码
JPushClient jpushClient = new JPushClient(masterSecret, appKey, 0, DeviceEnum.Android, false);
CustomMessageParams params = new CustomMessageParams();
params.setReceiverType(ReceiverTypeEnum.TAG);
params.setReceiverValue(tag);
MessageResult msgResult = jpushClient.sendCustomMessage(msgTitle, msgContent, params, null);
LOG.debug( “responseContent – ” + msgResult.responseResult.responseContent);
if (msgResult.isResultOK()) {
LOG.info( “msgResult – ” + msgResult);
LOG.info( “messageId – ” + msgResult.getMessageId());
} else {
if (msgResult.getErrorCode() > 0) {
// 业务异常
LOG.warn( “Service error – ErrorCode: ”
+ msgResult.getErrorCode() + “, ErrorMessage: ”
+ msgResult.getErrorMessage());
} else {
// 未到达 JPush
LOG.error( “Other excepitons – ”
+ msgResult.responseResult.exceptionString);
}
}
JPushClient jpushClient = new JPushClient(masterSecret, appKey, 0, DeviceEnum.Android, false);
CustomMessageParams params = new CustomMessageParams();
params.setReceiverType(ReceiverTypeEnum.TAG);
params.setReceiverValue(tag);
MessageResult msgResult = jpushClient.sendCustomMessage(msgTitle, msgContent, params, null);
LOG.debug("responseContent - " + msgResult.responseResult.responseContent);
if (msgResult.isResultOK()) {
LOG.info("msgResult - " + msgResult);
LOG.info("messageId - " + msgResult.getMessageId());
} else {
if (msgResult.getErrorCode() > 0) {
// 业务异常
LOG.warn("Service error - ErrorCode: "
+ msgResult.getErrorCode() + ", ErrorMessage: "
+ msgResult.getErrorMessage());
} else {
// 未到达 JPush
LOG.error("Other excepitons - "
+ msgResult.responseResult.exceptionString);
}
}
这是它的推送案例,只有android的,没有IOS的!
附送ios的代码:
后来发现IOS完全不能试用sendCustomMessage这个方法.
Java代码
/**
*
*/
package org.haoyi.push;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import cn.jpush.api.JPushClient;
import cn.jpush.api.common.DeviceEnum;
import cn.jpush.api.push.IosExtras;
import cn.jpush.api.push.MessageResult;
import cn.jpush.api.push.NotificationParams;
import cn.jpush.api.push.ReceiverTypeEnum;
/**
* @author zfanxu
*
*/
public class PushDemo {
public static final int MAX = Integer.MAX_VALUE / 2;
public static final int MIN = MAX / 2;
private static Logger LOG = Logger.getLogger(PushDemo. class);
public static void main(String[] args) {
JPushClient jpushClient = new JPushClient(Config.JPUSH_MASTER_SECRET,
Config.JPUSH_APPKEY, 0, DeviceEnum.IOS, false);
for ( int i = 0; i
String notificationContent = “show me your money!”;
NotificationParams param = new NotificationParams();
param.setSendNo(getRandomSendNo());
param.setReceiverType(ReceiverTypeEnum.REGISTRATION_ID);
param.setReceiverValue( “071f06f8c18″);
Map extras = new HashMap();
IosExtras iosExtra = new IosExtras( 1, “message.wav”); // badge
// set badge and sound
extras.put( “ios”, iosExtra);
MessageResult msgResult = jpushClient.sendNotification(
notificationContent, param, extras);
if (msgResult.isResultOK()) {
LOG.info( “msgResult – ” + msgResult);
LOG.info( “messageId – ” + msgResult.getMessageId());
} else {
if (msgResult.getErrorCode() > 0) {
// 业务异常
LOG.warn( “Service error – ErrorCode: ”
+ msgResult.getErrorCode() + “, ErrorMessage: ”
+ msgResult.getErrorMessage());
} else {
// 未到达 JPush
LOG.error( “Other excepitons – ”
+ msgResult.responseResult.exceptionString);
}
}
}
}
/**
*
* @return sendNo
*/
public static int getRandomSendNo() {
return ( int) (MIN + Math.random() * (MAX – MIN));
}
}
/**
*
*/
package org.haoyi.push;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import cn.jpush.api.JPushClient;
import cn.jpush.api.common.DeviceEnum;
import cn.jpush.api.push.IosExtras;
import cn.jpush.api.push.MessageResult;
import cn.jpush.api.push.NotificationParams;
import cn.jpush.api.push.ReceiverTypeEnum;
/**
* @author zfanxu
*
*/
public class PushDemo {
public static final int MAX = Integer.MAX_VALUE / 2;
public static final int MIN = MAX / 2;
private static Logger LOG = Logger.getLogger(PushDemo.class);
public static void main(String[] args) {
JPushClient jpushClient = new JPushClient(Config.JPUSH_MASTER_SECRET,
Config.JPUSH_APPKEY, 0, DeviceEnum.IOS, false);
for (int i = 0; i < 1; i++) {
String notificationContent = "show me your money!";
NotificationParams param = new NotificationParams();
param.setSendNo(getRandomSendNo());
param.setReceiverType(ReceiverTypeEnum.REGISTRATION_ID);
param.setReceiverValue("071f06f8c18");
Map extras = new HashMap();
IosExtras iosExtra = new IosExtras(1, "message.wav");// badge
// set badge and sound
extras.put("ios", iosExtra);
MessageResult msgResult = jpushClient.sendNotification(
notificationContent, param, extras);
if (msgResult.isResultOK()) {
LOG.info("msgResult - " + msgResult);
LOG.info("messageId - " + msgResult.getMessageId());
} else {
if (msgResult.getErrorCode() > 0) {
// 业务异常
LOG.warn("Service error - ErrorCode: "
+ msgResult.getErrorCode() + ", ErrorMessage: "
+ msgResult.getErrorMessage());
} else {
// 未到达 JPush
LOG.error("Other excepitons - "
+ msgResult.responseResult.exceptionString);
}
}
}
}
/**
* 保持 sendNo 的唯一性是有必要的 It is very important to keep sendNo unique.
*
* @return sendNo
*/
public static int getRandomSendNo() {
return (int) (MIN + Math.random() * (MAX - MIN));
}
}
先挖个坑,下班后,再填满!