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代表成功,其他值代表失败。