消息推送提供以下客户端 API,具体描述见下表。
调用方式 | API | 描述 |
---|---|---|
RPC 调用 | 绑定用户标识和设备标识(Ad-token)。 | |
解绑用户标识和设备标识(Ad-token)。 | ||
绑定厂商通道设备标识(Ad-token)。 |
mPaaS 中间层的 MPPush
类封装了移动推送组件所有 API,包括绑定、解绑以及厂商通道设备上报等。上述接口方法的 PRC 调用通过移动网关 SDK 来实现。
绑定
方法定义
本方法用于绑定用户标识和设备标识。绑定完成后,可基于用户维度推送消息。本接口需要在子线程中进行调用。
public static ResultPbPB bind(Context ctx, String userId, String token)
参数说明
参数
类型
说明
ctx
Context
一个不为空的
Context
。userId
String
用户唯一标识,该标识不一定为接入方用户系统中的真实标识,但一定可以与用户形成一一映射关系。
token
String
由移动推送网关下发的设备标识。
返回值
参数
说明
success
接口调用是否成功。
true:成功
false:失败
code
操作结果码,常见的操作结果码及其含义参见下表。
name
操作结果码的名称。
message
操作结果码对应的描述信息。
结果码说明
结果码
结果码名称
消息
说明
3012
NEED_USERID
need userid
调用接口时,入参
userId
为空。3001
NEED_DELIVERYTOKEN
need token
调用接口时,入参
token
为空。使用示例
private void doSimpleBind() { final ResultPbPB resultPbPB = MPPush.bind(getApplicationContext(), mUserId, PushMsgService.mAdToken); handlePbPBResult("绑定用户操作", resultPbPB); }
解绑
方法定义
本方法用于解绑用户标识和设备标识。本接口需要在子线程中进行调用。
public static ResultPbPB unbind(Context ctx, String userId, String token)
参数说明
参数
类型
说明
ctx
Context
一个不为空的 Context。
userId
String
用户唯一标识,该标识不一定为接入方用户系统中的真实标识,但一定可以与用户形成一一映射关系。
token
String
由移动推送网关下发的设备标识。
返回值
调用本方法的返回值同绑定接口的返回值。
使用示例
private void doSimpleUnBind() { final ResultPbPB resultPbPB = MPPush.unbind(getApplicationContext() , mUserId, PushMsgService.mAdToken); handlePbPBResult("解绑定用户操作", resultPbPB); }
厂商通道设备上报
方法定义
该方法用于同步绑定厂商通道设备标识与本机设备标识,即上报厂商通道设备标识和 mPaaS 设备标识(移动推送网关下发的 Ad-token)至移动推送核心,移动推送核心将绑定这两个标识。完成此过程后,方可使用厂商通道推送消息。
框架内部会调用一次该方法,为避免 SDK 调用失败,建议您再手动调用一次。
public static ResultPbPB report(Context context, String deliveryToken, int thirdChannel, String thirdChannelDeviceToken)
参数说明
参数
类型
说明
ctx
Context
一个不为空的 Context。
deliveryToken
String
由移动推送网关下发的设备标识(Ad-token)。
thirdChannel
int
厂商通道。枚举值如下:
2:苹果
4:小米
6:FCM
7:OPPO
8:vivo
thirdChannelDeviceToken
String
厂商通道设备标识
返回值
调用本方法的返回值同绑定接口的返回值。
使用示例
private void doSimpleUploadToken() { final ResultPbPB resultPbPB = MPPush.report(getApplicationContext(), PushMsgService.mAdToken , PushOsType.HUAWEI.value(), PushMsgService.mThirdToken); handlePbPBResult("厂商 push 标识上报操作", resultPbPB);
问题排查
如果通过 RPC 请求进行资源调用过程中出现异常,请参考 无线保镖结果码说明 进行排查。