个推服务端api使用手册进阶

前言json

上一片初级手册里给你们演示了如何使用个推服务端的sdk调用个推推送服务的api。相信许多朋友已经尝试成功了。但除了可以完成传送消息到手机上的基本功能之外,开发者必定会有不少定制化的需求。本篇给你们提供一些进阶使用的tips。segmentfault

定制化api

推送展现定制化
个推推送服务的客户端展现定制化需求主要经过它的推送模板来实现。上一篇提到,调用推送方法前须要先构造一个template。缓存

『 新建一个推送模版,以透传模板为例,透传顾名思义到达客户端后不作任何操做,由app选择处理
其余原生模板类型种类不少,支持各类客户端展示效果,包括弹框下载、打开连接等等。 』
TransmissionTemplate template = new TransmissionTemplate();
template.setAppId(appId);
template.setAppkey(appKey);
template.setTransmissionContent("测试用的透传文本");
template.setTransmissionType(1);app

此处咱们在示例里使用了TransmissionTemplate。这是个推的一个基本模板类型。使用这个模板,容许用户设置内容(若是二进制数据能够以base64方式转码),由个推推送系统将内容推送至APP,开发者自行对内容进行处理和展现。
除了这个模板类型之外,个推还提供了如下模板共开发者直接使用:post

 NotificationTemplate # 通知栏模板
在通知栏显示一条含图标、标题等的通知,用户点击后激活您的应用
NotificationTemplate template = new NotificationTemplate();
template.setAppId(appId);
template.setAppkey(appKey);
template.setTitle("测试标题"); // 展现标题
template.setText("测试文本"); // 展现文本
template.setLogo("logo.png"); // 本地logo
template.setLogoUrl("http://imgurl.com/xxx.png"); // 外链logo
template.setIsRing(true); // 是否响铃
template.setIsVibrate(true); //是否震动
template.setIsClearable(true); //通知栏里是否可被清除
template.setTransmissionType(1); //理解启动应用测试

 LinkTemplate # 通知栏—连接模板
在通知栏显示一条含图标、标题等的通知,用户点击可打开您指定的网页
除了上面的设置之外LinkTemplate须要额外设置一个跳转的URL
LinkTemplate template = new LinkTemplate();
template.setUrl("http://www.baidu.com");url

 NotyPopLoadTemplate # 通知栏—弹框下载模板
在通知栏显示一条含图标、标题等的通知,用户点击后弹出框,用户能够选择直接下载应用或者取消下载应用。除了appId,appKey之外还须要设置下面几个值:
NotyPopLoadTemplate template = new NotyPopLoadTemplate();
template.setPopTitle("弹框标题");
template.setPopContent("弹框内容");
template.setPopImage("POP.png");
template.setPopButton1("按钮1");
template.setPopButton2("按钮2");
template.setLoadIcon("下载图标");
template.setLoadTitle("下载标题");
template.setLoadUrl("下载地址");spa

其余接口code

除了经常使用的pushMessageToSingle/ pushMessageToList/ pushMessageToApp/ 这三个推送接口之外,个推还提供了一些额外的方便用户使用和排查问题的接口。
 getClientIdStatus # 获取客户端在线与否状态
IGtPush push = new IGtPush(url, appKey, masterSecret);
push.getClientIdStatus(appId, cid);

这个接口会返回客户端在个推系统里的在线状态,个推里的在线状态决定了个推系统会给这个用户推送这条消息仍是帮它缓存到离线库里。

 stop # 根据taskId中止推送任务
IGtPush push = new IGtPush(url, appKey, masterSecret);
push.stop(contentId);

当你发起了一个数量巨大的群推任务,会花费个推必定的时间去帮助你推送完全部的客户端。期间,你能够调用这个接口中止这次推送任务,尚未收到的客户端将不会再收到此次推送的消息。

回调接口

当你调用了服务端的api发送完一条消息,并收到服务端的返回success_online。如何肯定这条推送是否真的到达了本身的客户端呢?个推提供了一个回调接口服务,开发者能够在个推开放者平台上注册一个回调URL,这样个推在确认客户端收到消息后,会向开发者填写的回调URL post一个http请求。
 填写回调URL
请输入图片描述
请输入图片描述

 回调协议
 协议使用HTTP POST方式,经过调用第三方预先提供的URL来传递信息。
 POST数据的内容采用Json格式。
 第三方返回Json格式的返回信息,表示是否成功接收到回执

 举例
 回执例子:
{"sign":"xxxxxxxxxxxxx","msgid":"test-msgid","desc":"test-descmsg","taskid":"test-taskid","appid":"xxxxxxxxxxxxx","code":"400", "cid":"test-cid"}
 响应例子:
{"code":"0","result":"ok"}
开发者在本身的服务端处理这个json串便可肯定对应的消息推送是否真的到达了客户端。

小结

今天介绍的这些tips都是比较实用的,尽管不少开发者偏心使用TransmissionTemplate来进行推送,而后最大自由的处理推送内容,能够完成不少功能,可是其余模板在特定的应用情形下,也能发挥其便捷的优点。好比更新应用,彻底可使用NotyPopLoadTemplate,只须要少量几个设置,就能在客户端完成弹框下载的功能;好比消息提示,能够直接使用NotificationTemplate,完成最基础也最经常使用的客户端收到推送,而后在通知栏提醒用户的功能。 回调接口也是默默无闻可是很是实用的功能,能使你在须要在确保消息送达的情景下作到百分百的安心。尚未使用的开发者们赶快尝试一下吧~

相关文章
相关标签/搜索