## 打赏组件

### 版本历史

版本号 | 更新时间 | 更新描述
--- | --- | ---
1.0.0 | 2022.4.2 | 组件上线
1.2.4 | 2023.8.7 | 修复已知问题
1.2.6 | 2023.12.1 | 升级依赖Glide4.x版本
1.2.7 | 2024.2.2 | 修复已知问题

### 组件引入

注意：所有使用互动组件必须要引入basemodule库，最新版本见 互动组件对接文档

项目根目录build.gradle引入：

     repositories {     maven { url 'http://nexus-app.bokecc.com/repository/sdk-group/' } }

module的build.gradle引入：

     dependencies {     api ('com.bokecc:basemodule:x.x.x')     api ('com.bokecc.module:giftmodule:x.x.x') }

Application的onCreate方法中，调用 `DWLiveEngine.init` 初始化dwlivesdk后，添加代码：

    GiftInteractSDK.getInstance().init(app);

## 1. 结构图

## 对外参数说明

#### 对外API

    public interface GiftManager {    /**     * 初始化打赏模块     * @param giftListener 礼物模块回调监听     * @param userId 用户id     * @param roomId 房间id     * @param interactToken 互动组件token     * @param giftSwitch 根据直播间的配置 是走账户级礼物还是走直播间的礼物 主要用于获取礼物列表     */    void init(GiftListener giftListener,String userId,String roomId,String interactToken,int giftSwitch);
        /**     * 打赏     */    void sendGift(int giftId,int giftNum,SendGiftCallBack sendGiftCallBack);
        /**     * 重连     */    void reConnect();
        /**     * 释放     */    void release();
        /**     * 获取历史打赏记录     * @param historyCallBack     */    void getGiftHistory(HistoryCallBack historyCallBack);}

#### 对外回调

    public abstract class GiftListener {
        /**     * 初始化失败     */    public abstract void onInitFailure();
        /**     * 初始化成功     *     * @param giftInfos 礼物列表     */    public abstract void onInitSuccess(List<GiftInfo> giftInfos);
        /**     * 收到打赏消息     * @param gift     */    public abstract void onGift(Gift gift);
        /**     * 打赏模块连接失败     */    public abstract void onConnectFailure();
        /**     * 打赏连接成功     */    public void onConnect() {
        }}

    public interface HistoryCallBack {    /**     * 获取成功     * @param list     */    void onSuccess(List<Gift> list);
        /**     * 获取失败     */    void onFailure();}
    public interface SendGiftCallBack {    /**     * 发送成功     */    void onSuccess();
        /**     * 发送失败     */    void onFailure();}

#### 参数说明

    public class Gift {    //发送这名称    private String fromUserName;    //礼物图片地址    private String giftImg;    //礼物数量    private int giftNum;    //发送者的id    private String fromUserId;    //发送这的头像    private String fromUserAvatar;    //礼物名称    private String giftName;}
    public class GiftInfo {    //礼物id    public int id;    //礼物名称    public  String giftName;    //礼物图片    public  String giftThumbnail;    //礼物单价    public int giftPrice;}