实现效果

必要的依赖

    <!-- 个推sdk的依赖 --><dependency><groupId>com.gexin.platform</groupId><artifactId>gexin-rp-sdk-http</artifactId><version>4.0.1.17</version></dependency><repositories><repository><id>getui-nexus</id><url>http://mvn.gt.igexin.com/nexus/content/repositories/releases/</url></repository>
</repositories>

虽然是按照个推官方文写法档引入,但是我的maven就是无法下载到,最后只能手动引入jar


手动引入的jar包还是放在maven下载失败的目录下,不要随便放,否则项目还是回报红
https://download.csdn.net/download/u012796085/10913164

一般流程

//1,从个推应用管理中获取参数 https://dev.getui.com/dev/#/login
private static String appId = "duPdyoiHn4926fsCDbuYu8";
private static String appKey = "SWrYn90wZv8jnVT3a68vm";
private static String masterSecret = "ZTqxZR6wSo7tnKum9WQuR6";
private static String url = "http://sdk.open.api.igexin.com/apiex.htm";
//2,构造IGtPush,代表在个推注册一个APP
IGtPush push = new IGtPush(url, appKey, masterSecret);
//3,定义一个个推模板
NotificationTemplate template = new NotificationTemplate();
//4,定义消息类型
AppMessage message = new AppMessage();
message.setData(template);
//5,发送消息
IPushResult ret = push.pushMessageToApp(message);

以上步骤根据业务实际需求更改,具体的属性下面都列出来了

IGtPush构造函数

host          非必填   推送os域名,如果不填自动检测用户网络,选择最快域名连接下发
appKey        必填     鉴定身份是否合法
masterSecret  必填     第三方客户端个推集成鉴权码,验证第三方合法性,在服务端推送鉴权时使用
useSSL        非必填   是否使用https接口调用,默认http

个推模板

1,打开应⽤模板
针对沉默⽤户,发送推送消息,点击消息栏的通知可直接激活启动应⽤,提升应⽤的转化率
NotificationTemplate
setAppId     必填  设定接收的应⽤
setAppkey    必填  ⽤于鉴定身份是否合法
setDuration  非必填  收到消息的展示时间
transmissionContent   必填    2048中/英字符,消息内容,不⽀持转义字符
setTransmissionType   必填    收到消息是否⽴即启动应⽤: 1为⽴即启动,2则⼴播等待客户端⾃启动
setStyle              必填    知栏消息布局样式
2,打开⽹⻚模板
推送⼴促销活动,⽤户点击通知栏信息,直接打开到指定的促销活动⻚⾯,推送直接到达指定⻚⾯,免去了中间过程的⽤户流失
LinkTemplate
setAppId     必填  设定接收的应⽤
setAppkey    必填  ⽤于鉴定身份是否合法
setDuration  非必填  收到消息的展示时间
setUrl       必填    200中/英字符,点击通知打开网页地址
setStyle              必填    知栏消息布局样式
3,启动下载任务模板
应⽤有更新,点击推送的更新通知,弹出下载弹窗,点击可启动应⽤更新下载。
NotyPopLoadTemplate
setAppId     必填  设定接收的应⽤
setAppkey    必填  ⽤于鉴定身份是否合法
setDuration  非必填  收到消息的展示时间
setLoadUr       必填    200中/英字符,下载地址
setLoadTitle    必填    下载标题
setLoadIcon     必填    下载图标 ,本地需要加入file://,网络图标直接写网络地址
setPopTitle     必填    40中/英字 弹出框标题
setPopContent   必填    600中/英字 弹出框内容
setPopImage     必填    200中/英字 符弹出框图标
setPopButton1   必填    4中/英字 弹出框确认按钮文本显示
setPopButton2   必填    4中/英字 弹出框取消按钮文本显示
setAutoInstal   非必填  是否自动安装,默认false
setActived      非必填  安装完成后是否自动启动程序,默认false
setStyle              必填    知栏消息布局样式
4,透传消息模板
⾃定义通知栏样式不想使⽤默认的通知栏样式,即可使⽤消息透传的形式,⾃定义通知栏展现形式,使发送的通知更醒⽬,更突出
TransmissionTemplate
setAppId     必填  设定接收的应⽤
setAppkey    必填  ⽤于鉴定身份是否合法
setDuration  非必填  收到消息的展示时间
setTransmissionContent       必填    2048中/英字符,透传内容,不⽀持转义字符
setTransmissionType          必填     收到消息是否⽴即启动应⽤,1为⽴即启动,2则⼴播等待客户端⾃启动
setStyle              必填    知栏消息布局样式
5,消息撤回模板
因为操作失误导致推送错误的消息,即可使⽤消息撤回模板,指定需要撤回的消息进⾏撤回
指定⽤户推送时设置⽤户出现错误,可以⽤消息撤回模板,指定需要撤回的消息和⽤户进⾏撤回
可以针对⽤户 appId下所有消息进⾏撤回
版本要求:
客户端sdk:2.12.5.0以上
服务端os-sdk:java 4.1.0.0以上
撤回限制:
1,⽀持任务类型:os-sdk撤回模板⽀持撤回单推、群推、toApp任务
2, ⽀持模板:只⽀持撤回通知、不⽀持透传
3,第三⽅⼚商都不⽀持撤回
4,如果消息通过第三⽅⼚商离线下发,撤回必须使⽤force参数为true,并且会撤回AppId下的所有消息
TransmissionTemplatesetAppId     必填  设定接收的应⽤
setAppkey    必填  ⽤于鉴定身份是否合法
setOldTaskId 必填  指定需要撤回消息对应的taskId
setForce     非必填  客户端没有找到对应的taskid,是否把对应appid下所有的通知都撤回,默认false
6,模板样式(文档结尾)

消息类型

SingleMessage               单推消息体
ListMessage                 列表推送消息体
AppMessage                  指定应用群推送消息的消息体消息体共有属性
setData      必填       ITemplate     推送消息内容
setPriority  否         int           消息体优先级
setOffline   否         loolean       消息离线是否存储,默认true
setOfflineExpireTime    非必填  Long  消息离线存储多久,单位毫秒
setPushNetWorkType      非必填  int    1:WIFI环境推送,0:不限制推送方式
AppMessage消息体独有属性
setAppIdList            必填     List  指定推送的应用列表
setPhoneTypeList        非必填   List  设置机型
setProvinceList         非必填   List  设置省份城市,可以是省份名称,也可以是省份编码
setTagList              非必填   List  设置标签内容
setSpeed                非必填   Int   定速推送
setConditions           非必填   AppConditions     限定推送用户的条件

推送结果(所有异常返回编码在文章结尾)

IPushResult ret = push.pushMessageToApp(message);
Map resmap = ret.getResponse();
//{result=ok,...}

一个测试类(链接通知和应用通知)

import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.ITemplate;
import com.gexin.rp.sdk.base.impl.AppMessage;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.LinkTemplate;
import com.gexin.rp.sdk.template.NotificationTemplate;
import com.gexin.rp.sdk.template.style.Style0;
import org.junit.Test;import java.util.ArrayList;
import java.util.List;public class AppPush {//定义常量, appId、appKey、masterSecret 采用本文档 "第二步 获取访问凭证 "中获得的应用配置private static String appId = "duPdyoiHn4926fsCDbuYu8";private static String appKey = "SWrYn90wZv8jnVT3a68vm";private static String masterSecret = "ZTqxZR6wSo7tnKum9WQuR6";private static String url = "http://sdk.open.api.igexin.com/apiex.htm";/*** 点击打开链接*/@Testpublic void testLink(){IGtPush push = new IGtPush(url, appKey, masterSecret);// 定义"点击链接打开通知模板",并设置标题、内容、链接LinkTemplate template = new LinkTemplate();template.setAppId(appId);template.setAppkey(appKey);template.setTitle("通知标题");template.setText("请填写通知内容AAAAAAAAAAAAAAAAAAAAAAbbbAAAAAAA");template.setUrl("https://www.baidu.com");toMessage(template);}/*** 点击通知打开应用程序*/@Testpublic void testNotification(){// 定义"点击链接打开通知模板",并设置标题、内容、链接NotificationTemplate template = new NotificationTemplate();template.setAppId(appId);template.setAppkey(appKey);// 透传消息设置,1为强制启动应⽤,客户端接收到消息后就会⽴即启动应⽤;2为等待应⽤启动template.setTransmissionType(1);template.setTransmissionContent("请输⼊您要透传的内容");// 设置定时展示时间// template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");Style0 style = new Style0();// 设置通知栏标题与内容style.setTitle("请输⼊通知栏标题");style.setText("请输⼊通知栏内容");// 配置通知栏图标style.setLogo("icon.png");// 配置通知栏⽹络图标style.setLogoUrl("");// 设置通知是否响铃,震动,或者可清除style.setRing(true);style.setVibrate(true);style.setClearable(true);template.setStyle(style);toMessage(template);}//发送消息public void toMessage(ITemplate template){IGtPush push = new IGtPush(appKey, masterSecret);List<String> appIds = new ArrayList<String>();appIds.add(appId);// 定义"AppMessage"类型消息对象,设置消息内容模板、发送的⽬标App列表、是否⽀持离线发送、以及离线消息有效期(单位毫秒)AppMessage message = new AppMessage();message.setData(template);message.setAppIdList(appIds);message.setOffline(true);message.setOfflineExpireTime(1000 * 600);IPushResult ret = push.pushMessageToApp(message);System.out.println(ret.getResponse().toString());}
}
模板样式




错误代码

APP消息推送-个推java端实现相关推荐

  1. 关于Android安卓APP保活 - 安卓消息推送详解 - 安卓端外推送离线推送

    转自:http://zhangtielei.com/posts/blog-android-push.html 说Android端外推送比较烦,实际有两层意思:首先是说实现上比较麻烦,至今业界也没有找到 ...

  2. VIVO推送接入 OPPO推送接入 客户端+服务端

    老生常谈,推送接入已经不是什么难事,跟着文档走几小时就能搞定.不过我这里还是要记录一下,因为我在接入的时候还是有坑.希望这篇文章可以帮到你. VVIO客户端 厂商推送,无非就是收到推送拉起通知.所以在 ...

  3. 移动应用消息推送及推送原理

    消息推送 消息通知分本地通知和远程推送通知. 本文是记录React Native使用aws push notifications推送及相关配置及遇到的相关问题.在twilio和aws中选择使用aws的 ...

  4. ios推送服务,php服务端

    本文转载至http://my.oschina.net/AStar/blog/176531 生成证书  证书生成参考:https://parse.com/tutorials/ios-push-notif ...

  5. 推送uni-Push在IOS端推送失败

    前言: 这里不说如何配置推送信息,不懂就去看官方文档,那里很详细. 问题描述: 配置信息正确,设备唯一标识也传递给后端,后端发起推送个推返回的值是推送成功.但是APP就是没有接受到推送信息. 然后当你 ...

  6. sse服务器推送性能,SSE 服务端向客户端推送

    传统的ajax都是由客户端主动去请求,服务端才可以返回数据 而sse是建立一个通道,并且在断线后自动重连,由服务端去推送,不需要客户端去主动请求,只需要建立通道 websocket是双向通信 客户端可 ...

  7. iOS远程消息推送(信鸽推送平台)

    首先进入信鸽推送平台网站,登录, 下载iOS SDK文档,解压文件,将demo文件夹下面的sdk文件拖入工程中. 在苹果开发者网站,创建自己的APP id ,推送证书,描述文件.  详情见推送平台的文 ...

  8. android极光静默推送,Android 推送 整合小米、个推、jpush

    Android系统由google提供的推送的服务在国内并不能很好的运作,因此不能像iOS能提供统一管理的推送服务.Android端推送目前常用的都是第三方推送服务,也可以自己搭建推送服务器来实现, 为 ...

  9. php主动推送弹幕_源起网-织梦发布文档主动百度推送熊掌推送批量推送

    源起网-织梦发布文档主动百度推送熊掌推送批量推送 环境要求 PHP必须开启了curl扩展 百度主动推送(实时)可以缩短百度爬虫发现您站点新链接的时间,使新发布的页面可以在第一时间被百度收录 织梦程序我 ...

  10. iOS 手机App消息推送功能(后台Java实现)

    以下是一个测试demopublic static void main(String[] args){String deviceToken = "********************&qu ...

最新文章

  1. 清华唐杰:GPT-3表示能力已经接近人类了
  2. Win10网页打不开提示DNS_PROBE_POSSIBLE错误解决
  3. sudo apt get linux,常用sudo apt-get命令
  4. AdvStringGrid 垂直居中 、水平居中
  5. WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题解决方案
  6. 0005-Longest Palindromic Substring(最长回文子串)
  7. 柱状图python_python柱状图一行
  8. python 数组转音频_Python3+将2声道音频,分拆成1声道
  9. Spark学习之路---Spark核心概念
  10. ubuntu命令 图片 壁纸_太简单了!1分钟把Win 10 高颜值的开屏锁屏壁纸存储到电脑!...
  11. dnf新起号怎么才不出人脸_DNF玩家花8千买号,还不到1年,眼前的一幕让他目瞪口呆...
  12. bzoj 2821:作诗 分块
  13. C语言判断节日思路,C语言 程序设计 节日查询和任务提醒系统-万年历参考.doc
  14. 计算机视觉论文-2021-09-09
  15. MacBook Pro 安装软件navicat15 , mac10.15安装navcat15
  16. 分享一个淘宝/天猫/京东/阿里 图片抓取工具
  17. 关于sql server 2019的 卸载
  18. 飞跃计划 | 袋鼠云与睿呈时代达成战略合作,携手助推传统行业数字化转型
  19. 深入分析网络编程中踩过的坑
  20. 4G LTE频带划分和国内运行商资源分配

热门文章

  1. 腾讯刷屏!一季度狂赚478亿,员工人均月薪7.6万
  2. 运行不同版本libc
  3. Word复制表格样式变化问题
  4. 取消word文档中某些页面的页眉
  5. Java代码验证社会统一信用代码规则
  6. 如何从0到1进行电商平台订单系统的搭建?
  7. python画画excel_用Python在Excel里画出蒙娜丽莎
  8. OpenGL--------第一个窗口
  9. 双11后,第一批买家秀曝光……
  10. python的就业方向有哪些城市_Python就业方向有哪些?人工智能就业薪资待遇高吗?...