使用

初始化

协议版本

早期版本消息推送任务推拉是依赖数据同步组件来完成的,从3.0.2.0版本起,消息推送支持直接使用移动网关来实现任务推拉,可以解除任务推拉对数据同步组件的依赖。不过本次协议调整对新版服务有依赖,考虑到私有化客户不同的服务版本,SDK侧做了兼容,同时保留了两套协议实现,客户在初始化时根据自身服务情况指定协议版本即可。

public class ProtocolType {
    /**
     * 旧协议,依赖数据同步组件实现任务推拉
     */
    public static final int PROTOCOL_TYPE_CONCH = 0;
    /**
     * 新协议:与数据同步组件解耦,
     */
    public static final int PROTOCOL_TYPE_SHARK = 1;
}

注意:

  • 如果您对接的是公有云版本服务,协议版本需选择PROTOCOL_TYPE_SHARK。
  • 如果您对接的是私有化版本服务,默认协议版本是PROTOCOL_TYPE_CONCH,如果需要选择PROTOCOL_TYPE_SHARK,请联系管理员确认服务版本是否支持新协议。

初始化SDK

建议在 application 的 onCreate 时调用 push(消息推送)组件初始化接口,由于 push(消息推送)组件依赖TMF基础库,所以在初始化push前,请先初始化TMF基础库。

接口定义

/**
 * push 服务初始化
 *
 * @param useFCM             指示是否强制使用FCM通道,适用于海外上架场景
 * @param tmfPushServiceImpl push事件自定义回调
 * @param protocolType       使用的推送协议版本
 */

public static void init(boolean useFCM, TMFPushRcvService tmfPushServiceImpl, int protocolType)

参数说明

参数名称 参数类型 参数描述 必选
useFCM boolean 指示是否强制使用FCM通道,适用于海外上架场景 Y
tmfPushServiceImpl TMFPushRcvService 接收 push 消息的服务实现类 Y
protocolType int 使用的推送协议版本 Y

Sample

//TMFBase初始化
TMFBaseConfig config = new TMFBaseConfig.Builder()
                .buildNo(BuildConfig.BUILD_NO) // 必须,网关, 热更等模块需要使用
                .debug(true)
                              //...
                .build();

TMFBase.init(this, config);

//Push初始化,包括注册厂商sdk和自建通道
PushCenter.init(false, new pushRcvService(), protocolType);

消息推送服务回调接口

TMFPushRcvService 可以接收在消息推送控制台页面配置的附加参数键值对数据,该接口以 json 格式直接返回附加参数数据,供调用者解析使用,同时提供消息到达及通知栏点击回调,同时也用于接收透传消息,以 String 格式返回。

当接入华为小米等厂商推送通道时,该接口将返回注册结果码和失败原因。注册结果回调接口将返回注册推送服务时返回的结果码,可判断通道是否成功注册,注册失败时,可根据失败原因或根据返回的结果码,到对应厂商的开发者平台消息推送网站查询对应错误原因。

接口定义

public class TMFPushRcvService{
    /**
     * 通知栏消息点击时回调
     * 注意:点击跳转事件已由sdk内部处理,本接口用于点击时回调附加参数
     * @param jsonExtra 附加参数回调(json格式键值对)
     */
    public void onNotificationMsgClicked(String jsonExtra){}

    /**
     * 通知栏消息到达时回调
     * 注意:到达!=展示,可能存在由于无通知栏权限等原因消息到达但没有展示出来
     * @param jsonExtra 附加参数回调(json格式键值对)
     */
    public void onNotificationMsgArrived(String jsonExtra){}

    /**
     * 透传消息数据回调
     * @param pushMsg 收到的透传消息数据
     */
    public void onReceivePushMsg(String pushMsg){}

    /**
     * 注册结果回调(注册结果码,小米同时返回失败原因)
     */
    public void onRegisterResult(long errorCode, String errorReason){}
}

接口说明

方法名称 参数 接口功能描述
onNotificationMsgClicked String jsonExtra 附加参数回调(json格式键值对) 通知栏消息点击时回调,注意:点击跳转事件已由 SDK 内部处理,本接口用于点击时回调附加参数
onNotificationMsgArrived String jsonExtra 通知栏消息到达时回调,注意:到达!=展示,可能存在由于无通知栏权限等原因消息到达但没有展示出来
onReceivePushMsg String pushMsg 透传消息数据回调,参数返回透传的消息数据
onRegisterResult long errorCode;String errorReason 注册厂商推送 SDK 的结果码和失败原因,用于定位厂商 SDK 注册过程中的问题(失败原因仅小米有返回)

Sample

/**
 * 继承消息接收类,接收push信息
 */
public class PushRcvService extends TMFPushRcvService {
    public static final String TAG = "TMF_PUSH";

    @Override
    public void onRegisterResult(long errorCode,String errorReason) {
        //根据返回的错误码到对应厂商平台查阅错误码对应问题
        Log.i(TAG,"onRegisterResult errorCode:"+errorCode+",errorReason:"+errorReason);
    }

    @Override
    public void onNotificationMsgClicked(String jsonExtra) {
        //通知栏点击时附加参数回调,返回控制台填写的附加参数键值对(json格式)
        Log.i(TAG,"onNotificationMsgClicked jsonExtra:"+jsonExtra);
    }

    @Override
    public void onNotificationMsgArrived(String jsonExtra) {
        //通知栏到达时附加参数回调,返回控制台填写的附加参数键值对(json格式)
        Log.i(TAG,"onNotificationMsgArrived jsonExtra:"+jsonExtra);
    }

    @Override
    public void onReceivePushMsg(String pushMsg) {
        //返回透传消息数据
        Log.i(TAG,"onReceivePushMsg:"+pushMsg);
    }
}
Copyright © 2013-2023 Tencent Cloud. all right reserved,powered by GitbookUpdate Time 2023-08-31 14:46:07

results matching ""

    No results matching ""