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

今天试用了极光推送API

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

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

Java代码

431c9f7319ae0a0860e6dfbc055319a8.png

431c9f7319ae0a0860e6dfbc055319a8.png

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代码

431c9f7319ae0a0860e6dfbc055319a8.png

431c9f7319ae0a0860e6dfbc055319a8.png

/**

*

*/

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

}

}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日是这一年的等几天Java代码_java中计算指定日期是一年的第几天的方法

Java输入日期计算是这年的第几天&#xff1a;思路通过年份区分出是闰年还是平年&#xff0c;平年 2 月 28 天&#xff0c;闰年 2 月 29 天&#xff1b;1、3、5、7、8、10、12 月份 31 天其余月份均为 30 天&#xff1b;然后将每个月的天数相加即可&#xff0c;注意如果输入的是…

[2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 论文简析

[2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 论文简析 论文地址&#xff1a;https://arxiv.org/abs/2012.03515 代码地址&#xff1a;https://github.com/guybuk/ANCOR 首先通俗地介绍一下细粒度&#xff08;fine-grained&#xff09;&#…

[2020-AAAI] Revisiting Image Aesthetic Assessment via Self-Supervised Feature Learning 论文简析

[2020-AAAI] Revisiting Image Aesthetic Assessment via Self-Supervised Feature Learning 论文简析 论文链接&#xff1a;https://arxiv.org/abs/1911.11419 本文探索从自监督的角度进行美学评估。基于一个基本的动机&#xff1a;一个好的美学特征表示应该能够辨别出不同的…

java9 堆外内存_java堆外内存泄漏排查

当考虑Java中的内存泄漏时&#xff0c;我们通常会考虑Java堆泄漏&#xff0c;即在堆中分配的对象没有被垃圾收集。这是我在处理一台服务器内存泄漏时的想法&#xff0c;但我即将经历的远超出我的想象。症状&#xff1a;运行Vertx应用程序(没有交换分区)的生产服务器被Linux内存…

[2020-CVPR] Dynamic Region-Aware Convolution 论文简析

[2020-CVPR] Dynamic Region-Aware Convolution 论文简析 论文地址&#xff1a;https://arxiv.org/abs/2003.12243 参考代码地址&#xff08;非官方&#xff09;&#xff1a;https://github.com/shallowtoil/DRConv-PyTorch 代码笔者自己试了一下&#xff0c;应该是可以的&…

mmdetection 使用笔记 01: 安装与简单的推理demo

mmdetection 使用笔记 01: 安装与简单的推理demo mmdetection是来自商汤和港中文联合实验室openmmlab推出的目标检测工具包&#xff0c;与其同系列的还有基础视觉包mmcv&#xff0c;图像分类mmclassification&#xff0c;还有mmaction&#xff0c;mmaction2等等。 今天第一次…

php无限评论回复_php实现无限级评论功能_后端开发

php去除数组的键名的方法_后端开发在php中可以使用“array_values()”函数去除数组的键名&#xff0c;该函数返回包含数组中所有的值的数组&#xff0c;其语法是“array_values(array)”&#xff0c;其参数“array”表示规定的数组&#xff0c;返回值是包含数组中所有的值的数组…

错误类型、混淆矩阵及目标检测常用评价指标

目标检测常用评价指标 本文主要参考陈恺大佬在B站商汤账号的介绍mmdetection的视频。 检测结果的正确/错误类型 真阳性&#xff08;Ture Positive&#xff09;&#xff1a;算法检测到了某类物体&#xff08;Positive&#xff09;&#xff0c;而实际图中也确实有这个物体&…

使用yolov5训练自己的目标检测数据集

使用yolov5训练自己的目标检测数据集 yolov4出来后不久&#xff0c;又出现了yolov5&#xff0c;没有论文。虽然作者没有放上和yolov4的直接测试对比&#xff0c;但在COCO数据集的测试效果还是很可观的。很多人考虑到YOLOv5的创新性不足&#xff0c;对算法是否能够进化&#xf…

php获取h1,jQuery获取h1-h6标题元素值方法实例

本文主要介绍了jQuery实现获取h1-h6标题元素值的方法,涉及$(":header")选择器操作h1-h6元素及事件响应相关技巧,需要的朋友可以参考下&#xff0c;希望能帮助到大家。1、问题背景&#xff1a;查找到h1-h6&#xff0c;并遍历它们&#xff0c;打印出内容2、实现代码&am…

[2021-CVPR] Jigsaw Clustering for Unsupervised Visual Representation Learning 论文简析及关键代码简析

[2021-CVPR] Jigsaw Clustering for Unsupervised Visual Representation Learning 论文简析及关键代码简析 论文&#xff1a;https://arxiv.org/abs/2104.00323 代码&#xff1a;https://github.com/dvlab-research/JigsawClustering 总结 本文提出了一种单批次&#xff0…

matlab legend 分块,matlab legend 分块!

matlab legend 分块&#xff01;(2013-03-26 18:07:38)%%%压差clc;clear all;figure(55);set (gcf,Position,[116 123 275 210],color,w);P[25 26 27 28 29 30 31 32 33 34 35];%理论q0.00006*pi*28*P*10^(6)*0.03^3/(12*0.028448*5);q1110.00006*pi*28*P*10^(6)*0.03^3/(12*0.…

利用opencv-python绘制多边形框或(半透明)区域填充(可用于分割任务mask可视化)

利用opencv-python绘制多边形框或&#xff08;半透明&#xff09;区域填充&#xff08;可用于分割任务mask可视化&#xff09; 本文主要就少opencv中两个函数polylines和fillPoly分别用于绘制多边形框或区域填充&#xff0c;并会会以常见用途分割任务mask&#xff08;还是笔者…

Positional Encodings in ViTs 近期各视觉Transformer中的位置编码方法总结及代码解析 1

Positional Encodings in ViTs 近期各视觉Transformer中的位置编码方法总结及代码解析 最近CV领域的Vision Transformer将在NLP领域的Transormer结果借鉴过来&#xff0c;屠杀了各大CV榜单。对其做各种改进的顶会论文也是层出不穷&#xff0c;本文将聚焦于各种最新的视觉trans…

mysql 分析查询语句,MySQL教程之SQL语句分析查询优化

怎么获取有功能问题的SQL1、经过用户反应获取存在功能问题的SQL2、经过慢查询日志获取功能问题的SQL3、实时获取存在功能问题的SQL运用慢查询日志获取有功能问题的SQL首要介绍下慢查询相关的参数1、slow_query_log 发动定制记载慢查询日志设置的办法&#xff0c;能够经过MySQL指…

树莓派摄像头基础配置及测试

树莓派摄像头基础配置 step 1 硬件连接 硬件连接&#xff0c;注意不要接反了&#xff0c;排线蓝色一段朝向网口的方向。&#xff08;笔者的设备是树莓派4B&#xff09; step 2 安装raspi-config 安装 raspi-config raspi-config在raspbian中是预装的&#xff0c;而在kali、…

使用百度云智能SDK和树莓派搭建简易的人脸识别系统 Python语言版

硬件 树莓派4B一个CSI摄像头一个 笔者使用的是树莓派4B和CSI摄像头&#xff0c;但是树莓派3和USB摄像头等相似设备均可。 百度云智能设置 Step 1 登录 百度云智能 网址https://cloud.baidu.com/ 首先登录百度账号&#xff0c;与百度云、百度贴吧等互通&#xff0c;可直接…

xp搭建 php环境,windows xp 下 LAMP环境搭建

1. apache安装步骤如下图在浏览器中输入&#xff1a;localhost&#xff0c;出现下面页面说明已成功安装apache。2. mysql安装如下图显示在运行里面输入cmd &#xff0c;然后连接测试mysql &#xff0c;如图所示&#xff1a;3. php安装(1)将php压缩包解压到安装路径中的php目录…

C++中的虚函数(表)实现机制以及用C语言对其进行的模拟实现

C中的虚函数(表)实现机制以及用C语言对其进行的模拟实现 声明&#xff1a;本文非博主原创&#xff0c;转自https://blog.twofei.com/496/&#xff0c;博主读后受益良多&#xff0c;特地转载&#xff0c;一是希望好文能有更多人看到&#xff0c;二是为了日后自己查阅。 前言 …

C++中数组和指针的关系(区别)详解

C中数组和指针的关系&#xff08;区别&#xff09;详解 本文转自&#xff1a;http://c.biancheng.net/view/1472.html 博主在阅读后将文中几个知识点提出来放在前面&#xff1a; 没有方括号和下标的数组名称实际上代表数组的起始地址&#xff0c;这意味着数组名称实际上就是…