关于ios极光推送server端注意的地方
今天试用了极光推送API
用它是因为,大多数人说它的文档是最全的,但是用过之后,发现关于IOS的文档,还是很不够,导致走了一点弯路!
特别是服务端的代码:https://github.com/jpush/jpush-api-java-client for 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这个方法.
- /**
- *
- */
- 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<String, Object> extras = new HashMap<String, Object>();
- 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));
- }
- }
/**
*
*/
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<String, Object> extras = new HashMap<String, Object>();
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));
}
}
先挖个坑,下班后,再填满!
关于ios极光推送server端注意的地方的更多相关文章
- (转载)iOS 极光推送SDK 集成指南
iOS SDK 集成指南 使用提示 本文匹配的 SDK版本:r1.2.5 以后. 查看最近更新了解最新的SDK更新情况. 产品功能说明 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能 ...
- iOS极光推送SDK的使用流程
一.极光推送简介 极光推送是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,整合了iOS.Android和WP平台的统一推送服务.使用起来方便简单,已于集成,解决了原生远程推送繁 ...
- IOS 极光推送自定义通知遇到的一些坑
主要方法: //自定义推送 - (void)networkDidReceiveMessage:(NSNotification *)notification { NSDictionary * userI ...
- iOS 极光推送
1.关于推送的几个证书.http://www.mobile-open.com/2016/931624.html 进入开发者中心:https://developer.apple.com/account/ ...
- iOS极光推送
昨天花了一下午的时间研究了下极光推送,也前也是没做过,不知道从何下手!才开始的时候一看官方的SDK感觉好难,不过经过一系列的捣鼓之后,手机收到了推送信息,感觉其实并没有那么难! 1.配置开发证书(得有 ...
- iOS极光推送的基本使用
昨天花了一下午的时间研究了下极光推送,也前也是没做过,不知道从何下手!才开始的时候一看官方的SDK感觉好难,不过经过一系列的捣鼓之后,手机收到了推送信息,感觉其实并没有那么难! 1.配置开发证书(得有 ...
- iOS 极光推送 如何点击推送消息跳转页面
假如你已经集成完了极光,恰好有这个问题不知如何解决,可以看看这篇文章,这篇是针对远程通知的,本地通知大同小异吧. 根据我项目的要求,极光推送跳转指定页面分为两种情况:app在后台情况和app在杀死的情 ...
- iOS - 极光推送证书的创建及过期处理
无论iPhone还是安卓,我们用到的所有应用基本都有推送通知服务,因为这是应用很好的推广方式,有新产品了.有新更新了通知下用户及时查看.但Apple有点特殊,它的推送需要发到苹果服务器上中转一下,这就 ...
- IOS 极光推送(第三方框架)
下载极光推送文件,将以下两个文件导入项目中 APService.h libpushSDK.a #import "HMAppDelegate.h" #import "APS ...
随机推荐
- javascript设计模式-享元模式
享元模式采用一个共享来有效的支持大量细小粒度的对象,避免大量有相同内容的类的开销(如内存耗费),共享一个元类. 应用场景:页面存在大量的资源密集型对象:他们具备一些共性,可以分离出公共操作的数据. 一 ...
- 新安装的ubuntu系统如何设置中文输入法的方案
本文是本人写的第一篇的linux博客,因为很菜,所以就把刚才自己安装中文输入法的过程给大家介绍一下,希望有所帮助. 1.首先,打开命令终端,两种方式,在Dash里面输入terminal然后enter, ...
- Android书籍资源汇总
之前一直在Linux下使用C++做服务器端的开发工作,对Android关于移动方面的开发了解较少,现将android开发方面的书籍与资源整理如下,方便后续的查阅. 19本Android开发书籍 7本A ...
- JS产生四位随机数的方法
<script>var charactors="1234567890"; var value='',i; for(j=1;j<=4;j++){ i = parse ...
- form 表单默认的提示
<form method="get" action="" class="form"> <input type ...
- SQL2005中使用identity_insert向自动增量字段中写入内
摘自: http://www.aspbc.com/tech/showtech.asp?id=1117 SQL2005以前的数据库是不允许向自动增量字段中写入内容的,ACCESS也不行,但在SQL200 ...
- c/c++基本问题
1. 使用g++将文件编译成库文件 g++ -c -O2 -fPIC test.cpp -o test.o && g++ -shared -Wall -o test.so test.o ...
- 调用WCF Data Service的几点Tips
使用Linq实现sql in statement的时候,用EF的时候可以通过Contains.Exists的方法实现.但是在使用WCF Data Service的context的时候,会报不支持该方法 ...
- Incorrect integer value: '' for column 'id' at row 1
最近在写个查询 插入语句的时候 我是这么写的 insert into test values('',$row[contentid],'".$tn."'); 结果搞死没插入进去 然 ...
- (原创)Windows8下安装配置WAMP
Windows8下安装配置WAMP 2013/12/28 最近这段时间一直在研究linuxshell编程,虽然还是初级水平,但比之前有了不小的进度,但是shell的命令很多,很难在短时间 ...