关于ios极光推送server端注意的地方

今天试用了极光推送API

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

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

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这个方法.

Java代码  

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

先挖个坑,下班后,再填满!

时间: 2024-10-30 04:47:26

关于ios极光推送server端注意的地方的相关文章

ios极光推送通知

iOS极光推送文档 一.创建工程 Product Name:baixin Company Identifier:com.bluewave Bundle Identifier:com.bluewave.baixin 二.申请证书 1.创建应用程序ID a.登陆 iOS Dev Center 选择进入iOS Provisioning Portal. b.在 iOS Provisioning Portal中,点击App IDs进入App ID列表. c. 创建 App ID,如果 ID 已经存在可以直

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

iOS SDK 集成指南 使用提示 本文匹配的 SDK版本:r1.2.5 以后. 查看最近更新了解最新的SDK更新情况. 产品功能说明 极光推送(JPush)是一个端到端的推送服务,使得服务器端消息能够及时地推送到终端用户手机上,让开发者积极地保持与用户的连接,从而提高用户活跃度.提高应用的留存率.极光推送客户端支持 Android, iOS 两个平台. 本 iOS SDK 方便开发者基于 JPush 来快捷地为 iOS App 增加推送功能,减少集成 APNs 需要的工作量.开发复杂度. 主要

iOS: 极光推送

之前做过环信和友盟的推送,照着官方文档集成其实挺简单的,今天公司需要,特地做了一下极光推送.不用不知道,原来极光推送集成如此简单,不得不说说了. 当然做推送钱需要做一些准备工作了,就是推送必须的p12推送证书:开发环境(开发时测试需要的推送证书).生产环境(发布到AppStore时需要的推送证书),因为xcode已经升级到了7.0以上,所以一些真机测试的配置文件证书就不需要自己手动去创建了,只要有Apple ID,真机测试时,就能自动生成,免费测试: 制作证书的过程就不啰嗦了,详细看官方文档或者

项目实战:iOS极光推送集成(30分钟搞定)

推送有非常多,如个推.友盟.融云和极光等等.在这里就讲下怎样使用极光推送. 主要内容是将官方文档资料详细汇总并一步一步集成到项目中,您也能够直接去官方文档阅览. 极光推送SDK下载 直接打开官方文档下载最新的SDK 极光网创建APP并上传证书 一.制作推送证书和描写叙述文件:须要注意要制作两个证书,一个是測试证书,一个是公布证书,详细看官方文档截图:点击查看证书制作 直接看<iOS 证书 设置指南>其它的不用看了,废话太多 二.在极光推送官网注冊你的APP吧. bundle id要和你项目一直

iOS极光推送

1.配置开发证书(得有开发者账号,个人,企业的都可以) 开发环境测试 在对 JPush iOS 开发环境进行测试前,请确保 3 个统一: App 是开发环境打包(开发证书 Development) 上传了开发证书并验证通过 Portal 上的应用设置为开发环境 发布环境测试 在对 JPush iOS 生产环境进行测试前,请确保 3 个统一: App 是 ad-hoc 打包或者App Store 版本(发布证书 Production) 上传了发布证书并验证通过 Portal 上的应用设置为生产环境

iOS 极光推送遇到的问题

官方文档:http://docs.jpush.cn/pages/viewpage.action?pageId=2621727 问题: 没有Java后台直接从极光服务台推送,极光推送PushConfig.plist文件不需要配置也可推送成功. 但是如果有自己的后台,PushConfig.plist文件必须配置正确.

iOS极光推送,两次Bundleid不一致( 开发证书没有通过验证 是否重新上传证书)的解决方案

极光在配置ios端推送时,需要上传p12证书,如果遇到如下图:: 证书上传未通过的原因一般有: 1.当前上传的p12证书密码输入有误: 2. 证书导出的时候展开了证书,把个人私钥导了出来,导证书的时候请不要展开证书: 3.当前上传的证书环境不对,如:在上传开发证书的地方上传了生产证书: 4.该证书已在本账号的其它应用使用: 5.现上传的证书与当前应用已上传成功的证书的bundle id不一致. 前四种原因都可以自己搞定,但最后一种就比较麻烦了... 我正好是因为第五条原因,两次的bundleid

iOS极光推送集成步骤

1.下载SDK,导入Xcode 2.在苹果开发者中心建立AppId与bundleID进行关联,注意勾选推送功能 3.在苹果开发者中心建立推送证书 4.在极光后台建立应用且上传推送证书 5.建立描述文件(此时需要建立普通证书与描述文件关联) 6.配置证书和描述文件到Xcode中 7.开始推送

iOS极光推送 点击推送消息跳转页面

文章来自:http://www.jianshu.com/p/eaf07c4372a8 AppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { #if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1 if ([[UIDevice currentDevice].s