知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技  > 软件

java推送消息到app

发表时间:2022-03-26来源:网络

实现效果

必要的依赖

com.gexin.platform gexin-rp-sdk-http 4.0.1.17 getui-nexus http://mvn.gt.igexin.com/nexus/content/repositories/releases/

虽然是按照个推官方文写法档引入,但是我的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 = "ZT"; 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下的所有消息 TransmissionTemplate setAppId 必填 设定接收的应⽤ 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 = "ZT"; private static String url = "http://sdk.open.api.igexin.com/apiex.htm"; /** * 点击打开链接 */ @Test public 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); } /** * 点击通知打开应用程序 */ @Test public 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 appIds = new ArrayList(); 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()); } } 模板样式




错误代码

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜