今天试用了极光推送API

用它是因为,大多数人说它的文档是最全的,但是用过之后,发现关于IOS的文档,还是很不够,导致走了一点弯路!

特别是服务端的代码:https://github.com/jpush/jpush-api-java-client  for java

  1. JPushClient jpushClient = new JPushClient(masterSecret, appKey, 0, DeviceEnum.Android, false);
  2. CustomMessageParams params = new CustomMessageParams();
  3. params.setReceiverType(ReceiverTypeEnum.TAG);
  4. params.setReceiverValue(tag);
  5. MessageResult msgResult = jpushClient.sendCustomMessage(msgTitle, msgContent, params, null);
  6. LOG.debug("responseContent - " + msgResult.responseResult.responseContent);
  7. if (msgResult.isResultOK()) {
  8. LOG.info("msgResult - " + msgResult);
  9. LOG.info("messageId - " + msgResult.getMessageId());
  10. } else {
  11. if (msgResult.getErrorCode() > 0) {
  12. // 业务异常
  13. LOG.warn("Service error - ErrorCode: "
  14. + msgResult.getErrorCode() + ", ErrorMessage: "
  15. + msgResult.getErrorMessage());
  16. } else {
  17. // 未到达 JPush
  18. LOG.error("Other excepitons - "
  19. + msgResult.responseResult.exceptionString);
  20. }
  21. }
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这个方法.

  1. /**
  2. *
  3. */
  4. package org.haoyi.push;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. import org.apache.log4j.Logger;
  8. import cn.jpush.api.JPushClient;
  9. import cn.jpush.api.common.DeviceEnum;
  10. import cn.jpush.api.push.IosExtras;
  11. import cn.jpush.api.push.MessageResult;
  12. import cn.jpush.api.push.NotificationParams;
  13. import cn.jpush.api.push.ReceiverTypeEnum;
  14. /**
  15. * @author zfanxu
  16. *
  17. */
  18. public class PushDemo {
  19. public static final int MAX = Integer.MAX_VALUE / 2;
  20. public static final int MIN = MAX / 2;
  21. private static Logger LOG = Logger.getLogger(PushDemo.class);
  22. public static void main(String[] args) {
  23. JPushClient jpushClient = new JPushClient(Config.JPUSH_MASTER_SECRET,
  24. Config.JPUSH_APPKEY, 0, DeviceEnum.IOS, false);
  25. for (int i = 0; i < 1; i++) {
  26. String notificationContent = "show me your money!";
  27. NotificationParams param = new NotificationParams();
  28. param.setSendNo(getRandomSendNo());
  29. param.setReceiverType(ReceiverTypeEnum.REGISTRATION_ID);
  30. param.setReceiverValue("071f06f8c18");
  31. Map<String, Object> extras = new HashMap<String, Object>();
  32. IosExtras iosExtra = new IosExtras(1, "message.wav");// badge
  33. // set badge and sound
  34. extras.put("ios", iosExtra);
  35. MessageResult msgResult = jpushClient.sendNotification(
  36. notificationContent, param, extras);
  37. if (msgResult.isResultOK()) {
  38. LOG.info("msgResult - " + msgResult);
  39. LOG.info("messageId - " + msgResult.getMessageId());
  40. } else {
  41. if (msgResult.getErrorCode() > 0) {
  42. // 业务异常
  43. LOG.warn("Service error - ErrorCode: "
  44. + msgResult.getErrorCode() + ", ErrorMessage: "
  45. + msgResult.getErrorMessage());
  46. } else {
  47. // 未到达 JPush
  48. LOG.error("Other excepitons - "
  49. + msgResult.responseResult.exceptionString);
  50. }
  51. }
  52. }
  53. }
  54. /**
  55. * 保持 sendNo 的唯一性是有必要的 It is very important to keep sendNo unique.
  56. *
  57. * @return sendNo
  58. */
  59. public static int getRandomSendNo() {
  60. return (int) (MIN + Math.random() * (MAX - MIN));
  61. }
  62. }
/**
*
*/
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端注意的地方的更多相关文章

  1. (转载)iOS 极光推送SDK 集成指南

    iOS SDK 集成指南 使用提示 本文匹配的 SDK版本:r1.2.5 以后. 查看最近更新了解最新的SDK更新情况. 产品功能说明 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能 ...

  2. iOS极光推送SDK的使用流程

    一.极光推送简介 极光推送是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,整合了iOS.Android和WP平台的统一推送服务.使用起来方便简单,已于集成,解决了原生远程推送繁 ...

  3. IOS 极光推送自定义通知遇到的一些坑

    主要方法: //自定义推送 - (void)networkDidReceiveMessage:(NSNotification *)notification { NSDictionary * userI ...

  4. iOS 极光推送

    1.关于推送的几个证书.http://www.mobile-open.com/2016/931624.html 进入开发者中心:https://developer.apple.com/account/ ...

  5. iOS极光推送

    昨天花了一下午的时间研究了下极光推送,也前也是没做过,不知道从何下手!才开始的时候一看官方的SDK感觉好难,不过经过一系列的捣鼓之后,手机收到了推送信息,感觉其实并没有那么难! 1.配置开发证书(得有 ...

  6. iOS极光推送的基本使用

    昨天花了一下午的时间研究了下极光推送,也前也是没做过,不知道从何下手!才开始的时候一看官方的SDK感觉好难,不过经过一系列的捣鼓之后,手机收到了推送信息,感觉其实并没有那么难! 1.配置开发证书(得有 ...

  7. iOS 极光推送 如何点击推送消息跳转页面

    假如你已经集成完了极光,恰好有这个问题不知如何解决,可以看看这篇文章,这篇是针对远程通知的,本地通知大同小异吧. 根据我项目的要求,极光推送跳转指定页面分为两种情况:app在后台情况和app在杀死的情 ...

  8. iOS - 极光推送证书的创建及过期处理

    无论iPhone还是安卓,我们用到的所有应用基本都有推送通知服务,因为这是应用很好的推广方式,有新产品了.有新更新了通知下用户及时查看.但Apple有点特殊,它的推送需要发到苹果服务器上中转一下,这就 ...

  9. IOS 极光推送(第三方框架)

    下载极光推送文件,将以下两个文件导入项目中 APService.h libpushSDK.a #import "HMAppDelegate.h" #import "APS ...

随机推荐

  1. powerdesigner逆向导出oracle数据库结构显示备注

    最近接到命令,要将oracle数据库的结构导出为pdm文件供其他同事使用,逆向工程导出数据库结构比较方便,但是发现导出的数据库结构没有注释,这是很郁闷的事情: 查过网上很多资料都是sqlserver的 ...

  2. ENVI二次开发模式下的Landsat数据读取

    从usgs网站或者马里兰大学下载TM或Landsat原始数据,数据可能包括9个tif数据,两个txt文件和一个gtf文件.示例结构如下: ENVI下可以直接打开*_MTL.txt文件打开,打开后波段列 ...

  3. Qt事件处理机制

    研一的时候开始使用Qt,感觉用Qt开发图形界面比MFC的一套框架来方便的多.后来由于项目的需要,也没有再接触Qt了.现在要重新拾起来,于是要从基础学起. Now,开始学习Qt事件处理机制. 先给出原文 ...

  4. 做好SEO需要掌握的20个基础知识

    作为一个网站优化者,有一些基础seo知识点是大家必须要掌握的,网站排名的好快,和这些基础的SEO优化知识有没做好,有没做到位,有着直接的关系!今天,伟伟SEO就把我前面讲的SEO优化基础知识做个总结, ...

  5. Linux设备驱动开发环境的搭建(转)

    经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助. 刚接触Linux设备驱动时,初学者往 ...

  6. hdu2099

    注意是两位数,必须输出01,02,03,这种 #include <stdio.h> int main(){ int begin,end; int i; ]; int cnt; int si ...

  7. Spring MVC防御CSRF、XSS和SQL注入攻击

    参考: http://www.myhack58.com/Article/html/3/7/2012/36142_6.htm http://blog.csdn.net/jasontome/article ...

  8. grep,awk和sed的常用命令和语法

    Grep的常用命令语法 1. 双引号引用和单引号引用在g r e p命令中输入字符串参数时,最好将其用双引号括起来.例如:“m y s t r i n g”.这样做有两个原因,一是以防被误解为 s h ...

  9. 银行ATM机工作流程模拟编程(代码)

    #include<stdio.h>#include<stdlib.h>#include <conio.h>#include <string.h> voi ...

  10. Ubuntu系统使用记录(持续更新)

    本篇文章记录在虚拟机上跑Ubuntu16.04遇到的一系列问题,熟悉一下Ubuntu的相关操作,进入终端的方法ctrl+alt+t. 1.修改屏幕分辨率,进入系统默认的是800x600 即便能够进入s ...