VIVO消息推送 Android PUSH-SDK API接口文档

VIVO消息推送 Android PUSH-SDK API接口文档

点击此处下载 PUSH SDK接入文档

版本号:3.0.0.4

一、 接口概述

本SDK中有两个开放类,分别为:Push操作类PushClient、回调接收类OpenClientPushMessageReceiver/ IPushActionListener。

PushClient 为功能接口,用于调用Push相关功能; 

IPushActionListener 为操作回调接口,用于功能接口状态回调;

OpenClientPushMessageReceiver 为回调接口,用于Push的数据结果返回;

1. PushClient功能类

PushClient提供Push服务的对外API列表,采用单例模型,通过getInstance(Context context)获得该对象。

initialize      初始化Push服务;

checkManifest   检查AndroidManifest是否正确声明组件和权限;

turnOnPush      打开PUSH;

turnOffPush     关闭PUSH;

getRegId        获取当前设备的当前应用的唯一标识;

bindAlias       设置应用别名;

unBindAlias     取消应用别名;

getAlias        获取应用别名;

setTopic        设置主题;

delTopic        删除主题;

getTopics       获取主题;

isSupport       当前系统是否支持PUSH;

2. IPushActionListener操作回调类

IPushActionListener类提供PushClient的操作回调。

onStateChanged  操作状态返回,详见操作码;

3.OpenClientPushMessageReceiver操作回调类

OpenClientPushMessageReceiver类提供基础消息的接收和操作结果的反馈,需要开发者继承本类,并重载相关的方法;同时,还需要在AndroidManifest.xml静态注册。

onReceiveRegId  RegId结果返回,只有首次获取到或regId发生变化时才会回调;

onNotificationMessageClicked  通知被点击时回调(仅用于兼容老版本)。

4. 公共状态码

状态码用于返回各项操作的结果,常用于回调接收类中状态返回,以下为公共状态码:

0       操作成功;

1       操作成功,此动作在未操作前已经设置成功;

101     系统不支持;

102     PUSH初始化异常,请重现初始化PUSH;

1001    一天内调用次数超标;

1002    操作频率过快;

1003    操作超时;

1004    应用处于黑名单;

1005    当前push服务不可用;

10000   未知异常;

10001   topic错误,例如传入appid/;

10002   topic错误, 例如appid/null;

10003   app包名与配置不匹配,例如传入com.yyy;

10004   appkey不匹配,例如传入appkey:bcd不存在;

10005   appid传入错误,例如未申请此appid,传入111;

10006   别名长度超过40;

10007   别名订阅时appkey不存在;

10008   开放平台暂不支持tag订阅;

二、 API接口

PushClient类

① Initialize

功能介绍:初始化push服务,可以提高后台发送消息的实时性。

接口定义:void initialize();

补充:建议每次手机启动后,都调用一次,确保Push服务能够正常运行。

② turnOnPush

功能介绍:打开应用push开关,绑定应用,成功后便可接收到当前应用的推送消息。

接口定义:void turnOnPush(IPushActionListener listener);

参数说明:listener: 状态监听;

补充:打开push成功后无需重复调用。

③ turnOffPush

功能介绍:关闭应用push开关,解除绑定应用,解绑后将收不到当前应用的推送消息。

接口定义:void turnOffPush(IPushActionListener listener);

参数说明:listener: 状态监听;

补充:关闭push成功后无需重复调用。

④ getRegId

功能介绍: 获取当前设备的当前应用的唯一标识,后台可基于此标识发送通知。

接口定义:String getRegId();

返回值:当前设备的当前应用的唯一标识;

补充:此方法仅在打开PUSH成功后可以获取,否则为null。

⑤ bindAlias

功能介绍:在注册成功,收到regId之后,即可设置别名,绑定当前设备的当前应用的别名,可以理解为regId的别名,开发者可以将别名设置为自己应用帐号系统的帐号,或者设备标识等。然后通过此别名发送消息。

接口定义:bindAlias(String alias, IPushActionListener listener);

参数说明:alias:别名; listener: 状态监听。

**状态码 描述**

30001   设置别名失败:请打开push开关;

30002   设置别名失败:订阅别名为空;

30003   设置别名失败:别名设置超长,字符长度超过70;

补充:绑定别名,同一个别名仅能绑定一个regId。当regId已绑定了别名A,若调用此接口绑定别名B,则与别名A的绑定关系会自动解除。此接口与 unBindAlias 一天内最多调用100次,两次调用的间隔需大于2s。

⑥ unBindAlias

功能介绍:删除别名,解除绑定当前应用别名,解绑成功后后台将无法通过别名的方式向应用发消息。

接口定义:

void unBindAlias(String alias);
void unBindAlias(String alias, IPushActionListener listener);

参数说明: alias:别名; listener:状态监听。

**状态码 描述**

30001   删除别名失败:请打开push开关;

30002   删除别名失败:订阅别名为空;

30003   删除别名失败:别名设置超长,字符长度超过70;

补充:此接口与 bindAlias 一天内最多调用100次,两次调用的间隔需大于2s。

⑦ getAlias

功能介绍:获取当前设备的应用别名,后台可基于此别名发送通知。

接口定义:String getAlias();

返回值:当前设备的应用别名。

⑧ checkManifest

功能介绍:校验接入是否异常。通过调用该API来检查AndroidManifest.xml是否正确声明了本SDK要求的所有组件和权限。当有组件和权限未定义,或者组件的属性声明错误时抛出异常VivoPushException。

接口定义:void checkManifest()。

⑨ setTopic

功能介绍:在注册成功,收到regId之后,即可设置主题;开发者可根据用户订阅的主题实现分组。

接口定义:setTopic(String topic, IPushActionListener listener);

参数说明:topic : 需要订阅的主题名; listener : 状态监听。

**状态码 描述**

20001   设置主题失败:请打开push开关;

20002   设置主题失败:订阅主题为空;

20003   设置主题失败:别名设置超长,字符长度超过70;

20004   设置主题失败:订阅次数太频繁或已订阅数过多;

补充:同一个regId可设置多个主题,最多可订阅500个主题。当regId已设置了topicA,若调用此接口设置topicB,则regId同时订阅了topicA和topicB。此接口与 delTopic 一天内最多调用500次,两次调用的间隔需大于2s。

⑩ delTopic

功能介绍:删除已经设置的主题。

接口定义:delTopic(String topic, IPushActionListener listener);

参数说明:topic 需要取消订阅的主题名; listener 状态监听。

**状态码 描述**

20001   设置主题失败:请打开push开关;

20002   设置主题失败:订阅主题为空;

20003   设置主题失败:别名设置超长,字符长度超过70;

20004   设置主题失败:订阅次数太频繁或已订阅数过多;

补充:此接口与 setTopic 一天内最多调用500次,两次调用的间隔需大于2s。

⑪ getTopics

功能介绍:获取当前设备的应用主题,后台可基于此主题发送通知。

接口定义:List getTopics();

返回值:当前设备已经设置的应用主题;

⑫ isSupport

功能介绍:用于判断当前系统是否支持PUSH服务。

接口定义:boolean isSupport();

返回值:true 系统支持; false 系统不支持。

⑬ onReceiveRegId

功能介绍:RegId结果返回。当开发者首次调用turnOnPush成功或regId发生改变时会回调该方法。

接口定义:void onReceiveRegId(Context context, String regId);

参数说明:context : 应用上下文; regId: 当前设备的当前应用的唯一标识;

⑭ onNotificationMessageClicked(仅用于兼容老版本)

功能介绍:通知被点击后的结果返回。当push发出的通知被点击后便会触发onNotificationClicked通知应用。

接口定义:void onNotificationMessageClicked(Context context, UPSNotificationMessage msg);

参数说明:context : 应用上下文; msg: UPSNotificationMessage通知消息结构体;

**UPSNotificationMessage 包含以下字段**
msgId:通知id。
title:通知标题。
content:通知内容。
skipContent:通知自定义内容。
params:自定义键值对。

三、统一推送联盟API介绍

① turnOnPush

功能介绍:做了相应的初始化操作,建议用户在自己应用的Application中的onCreate()方法中调用turnOnPush操作。

接口定义:

void turnOnPush(Context context, UPSTurnCallback callback)

参数说明:

context : 应用上下文;

Callback:UPSTurnCallback 回调结构,包含以下方法;

 .getReturnCode()  获取返回状态,0代表成功,其他值代表失败。

② registerToken

功能介绍:注册push,获取申请的regId

接口定义:

void registerToken(final Context context, String appID, String appKey, String appSecret, final UPSRegisterCallback callback)

参数说明:

context : 应用上下文;

appID: 应用在Vivo开放平台申请的APPId;

appKey: 应用在Vivo开放平台申请的APPKey;

appSecret: 应用在Vivo开放平台申请的APPSecret;

callback: UPSRegisterCallback回调结构,包含以下方法;

 .getReturnCode() 获取返回状态,0代表成功,其他值代表失败;

 .getToken()  获取应用申请的regId。

③ unRegisterToken

功能介绍:接注册push,关闭push功能

接口定义:

void unRegisterToken(Context context, final UPSRegisterCallback callback)

参数说明:

context : 应用上下文;

Callback:UPSRegisterCallback回调结构,包含以下方法;

.getReturnCode():获取返回状态,0代表成功,其他值代表失败。

④ turnOffPush

功能介绍:该功能暂时未具体实现,要关闭push功能,请调用上面的unRegisterToken接口

接口定义:

void turnOffPush(Context context, final UPSTurnCallback callback)

参数说明:

context : 应用上下文;

Callback:UPSTurnCallback回调结构,包含以下方法;

.getReturnCode():获取返回状态,0代表成功,其他值代表失败。