|
|
## 云直播直播带货功能接入文档
|
|
|
|
|
|
[TOC]
|
|
|
|
|
|
|
|
|
|
|
|
### 结构图
|
|
|
|
|
|
![](image/iOS-结构图.png)
|
|
|
|
|
|
### 时序图
|
|
|
|
|
|
![](image/直播带货功能时序图.png)
|
|
|
|
|
|
|
|
|
|
|
|
### 接入方式
|
|
|
|
|
|
#### 本地集成
|
|
|
|
|
|
| 新增依赖库(动态库) | 接入方式 | 签名选择 |
|
|
|
| ------------------------------ | ----------------------------------------------------- | ------------ |
|
|
|
| HDSLiveStoreModule.framework | 下载zip包中 HDSLiveStoreModule 文件夹下,拖入项目中 | Embed & Sign |
|
|
|
| HDSInteractionEngine.framework | 下载zip包中 HDSInteractionEngine 文件夹下,拖入项目中 | Embed & Sign |
|
|
|
|
|
|
|
|
|
|
|
|
#### cocoapods 集成
|
|
|
|
|
|
| 新增依赖库(动态库) | 接入方式 | 是否必须 |
|
|
|
| ------------------------------ | ------------------------------------------------ | -------- |
|
|
|
| HDSLiveStoreModule.framework | 在Podfile文件中添加: Pod 'HDSLiveStoreModule' | 是 |
|
|
|
| HDSInteractionEngine.framework | 在Podfile文件中添加: Pod 'HDSInteractionEngine' | 是 |
|
|
|
|
|
|
|
|
|
|
|
|
### 新增 API
|
|
|
|
|
|
### ---------------- 前置条件 ----------------
|
|
|
|
|
|
|
|
|
|
|
|
#### 房间互动功能配置信息(代理方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| ---------------------------------- | ------------ | ------------------- |
|
|
|
| (void)onInteractionFunctionConfig: | 互动功能配置 | CCSDK/RequestData.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
/// 互动功能配置
|
|
|
/// @param configModel 配置信息
|
|
|
- (void)onInteractionFunctionConfig:(HDSInteractionFunctionModel *)configModel;
|
|
|
```
|
|
|
|
|
|
##### HDSInteractionFunctionModel
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
| -------------- | ---------------------------- | ------------ | --------------------- |
|
|
|
| liveStoreModel | HDSInteractionLiveStoreModel | 直播带货配置 | CCSDK/PlayParameter.h |
|
|
|
|
|
|
###### HDSInteractionLiveStoreModel
|
|
|
|
|
|
| 参数 | 注释 | 所在类文件 |
|
|
|
| --------------- | -------------------------- | --------------------- |
|
|
|
| liveStoreSwitch | 直播带货开关 0:关闭 1:开启 | CCSDK/PlayParameter.h |
|
|
|
|
|
|
|
|
|
|
|
|
#### 获取互动组件Token(主动方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| --------------------------------------------------- | ------------------ | ------------------- |
|
|
|
| (void)getInteractionTokenWithClosure: tokenClosure: | 获取互动组件 token | CCSDK/RequestData.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
/// 获取互动组件 token
|
|
|
/// @param closure 操作回调 (result 操作状态, message 信息)
|
|
|
/// @param tokenClosure token回调 " result == YES 时返回token, result == NO 时返回 @""(空字符串) "
|
|
|
- (void)getInteractionTokenWithClosure:(completeHandler)closure
|
|
|
tokenClosure:(interactionTokenClosure)tokenClosure;
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### ---------------- 初始化直播带货组件 ----------------
|
|
|
|
|
|
|
|
|
|
|
|
#### 初始化直播带货组件SDK(主动方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| --------------------------------------------------- | ------------------ | ------------------------------------- |
|
|
|
| (instancetype)initLiveStoreFuncWithConfig: closure: | 初始化直播带货功能 | HDSLiveStoreModule/HDSLiveStoreFunc.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
/// 初始化直播带货功能
|
|
|
/// @param config 配置项
|
|
|
/// @param closure 操作回调
|
|
|
- (instancetype)initLiveStoreFuncWithConfig:(HDSLiveStoreFuncConfig *)config
|
|
|
closure:(completeHandler)closure;
|
|
|
```
|
|
|
|
|
|
##### HDSLiveStoreFuncConfig
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
| ---------------- | ------------------ | ------------- | ------------------------------------------- |
|
|
|
| userId | String | 用户ID | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
| userName | String | 用户名 | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
| roomId | String | 房间ID | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
| token | String | token | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
| viewerId | String | 观看者Id | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
| sourceType | SourceType(枚举) | 来源类型 | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
| sourceSDKVersion | String | 来源SDK版本号 | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
| uuid | String | 用户唯一标识 | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
|
|
|
```objc
|
|
|
typedef NS_ENUM(NSUInteger, SourceType) {
|
|
|
///云直播
|
|
|
SourceTypeLive,
|
|
|
///云课堂
|
|
|
SourceTypeClass,
|
|
|
///云点播
|
|
|
SourceTypeVod,
|
|
|
///获得直播
|
|
|
SourceTypeHDSLive,
|
|
|
};
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 重载直播带货功能(主动方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| ------------------------------------- | ---------------- | ------------------------------------- |
|
|
|
| (void)reloadLiveStoreFuncWithClosure: | 重载直播带货功能 | HDSLiveStoreModule/HDSLiveStoreFunc.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
/// 重载直播带货功能
|
|
|
/// @param closure 操作回调
|
|
|
- (void)reloadLiveStoreFuncWithClosure:(completeHandler)closure;
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### ---------------- 推送商品 ----------------
|
|
|
|
|
|
#### 获取当前直播间正在进行的推送商品(主动方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| ------------------------------------------- | -------------------------------- | ------------------------------------- |
|
|
|
| (void)getPushingItem: closure: pushingItem: | 获取当前直播间正在进行的推送商品 | HDSLiveStoreModule/HDSLiveStoreFunc.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
/// 获取当前直播间正在进行的推送商品(最小事件间隔大于 2000 ms)
|
|
|
/// @param itemId 商品ID
|
|
|
/// @param closure 操作回调
|
|
|
/// @param pushItemClosure 进行中的推送回调
|
|
|
- (void)getPushingItem:(NSString *)itemId
|
|
|
closure:(completeHandler)closure
|
|
|
pushingItem:(pushItemClosure)pushItemClosure;
|
|
|
```
|
|
|
|
|
|
```objc
|
|
|
// 进行中的推送回调
|
|
|
typedef void (^pushItemClosure)(HDSPushItemModel *model);
|
|
|
```
|
|
|
|
|
|
##### HDSPushItemModel
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
| ------------ | ------ | ------------------- | --------------------------------------- |
|
|
|
| id | String | 商品id | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| title | String | 商品名称 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| cover | String | 商品图片 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| originPrice | Double | 商品原价(单位:分) | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| currentPrice | Double | 商品现价(单位:分) | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 收到推送商品消息(代理方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| ----------------- | -------- | ------------------------------------- |
|
|
|
| (void)onPushItem: | 推送商品 | HDSLiveStoreModule/HDSLiveStoreFunc.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
// 推送商品
|
|
|
- (void)onPushItem:(HDSPushItemModel *)model;
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
##### HDSPushItemModel
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
| ------------ | ------ | ------------------- | --------------------------------------- |
|
|
|
| id | String | 商品id | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| title | String | 商品名称 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| cover | String | 商品图片 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| originPrice | Double | 商品原价(单位:分) | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| currentPrice | Double | 商品现价(单位:分) | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
|
|
|
|
|
|
|
|
|
#### 收到取消推送商品消息(代理方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| -------------------------- | -------- | ------------------------------------- |
|
|
|
| (void)onCancelPushingItem: | 取消推送 | HDSLiveStoreModule/HDSLiveStoreFunc.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
// 取消推送
|
|
|
- (void)onCancelPushingItem:(HDSCancelPushItemModel *)model;
|
|
|
```
|
|
|
|
|
|
##### HDSCancelPushItemModel
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
| ---- | ------ | ------ | --------------------------------------- |
|
|
|
| id | String | 商品id | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### ---------------- 获取商品列表 ----------------
|
|
|
|
|
|
|
|
|
|
|
|
#### 获取商品列表(主动方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| ------------------------------------------------- | ------------ | ------------------------------------- |
|
|
|
| (void)getItemList: pageSize: closure: itemsModel: | 获取商品列表 | HDSLiveStoreModule/HDSLiveStoreFunc.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
/// 获取商品列表
|
|
|
/// @param pageNum 页码 (从 1 开始)
|
|
|
/// @param pageSize 每页展示条数
|
|
|
/// @param closure 操作回调
|
|
|
/// @param itemsClosure 商品列表回调
|
|
|
- (void)getItemList:(NSInteger)pageNum
|
|
|
pageSize:(NSInteger)pageSize
|
|
|
closure:(completeHandler)closure
|
|
|
itemsModel:(itemListClosure)itemsClosure;
|
|
|
```
|
|
|
|
|
|
```objc
|
|
|
typedef void (^itemListClosure)(HDSItemListModel *model);
|
|
|
```
|
|
|
|
|
|
##### HDSItemListModel
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
| ------- | ------------------------------------ | -------- | ------------------------------------------- |
|
|
|
| records | HDSSingleItemModel(Array) | 商品列表 | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
| pageNum | HDSItemPageInformationModel(Model) | 分页信息 | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
|
|
|
###### HDSSingleItemModel
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
| ------------ | ------- | ------------------- | --------------------------------------- |
|
|
|
| id | String | 商品id | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| title | String | 商品名称 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| cover | String | 商品图片 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| desc | String | 商品描述 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| tags | Array | 商品标签 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| originPrice | Double | 商品原价(单位:分) | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| currentPrice | Double | 商品现价(单位:分) | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| buttonTitle | String | 按钮文案 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| top | Bool | 是否置顶 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| push | Bool | 是否推送 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| score | Integer | 商品序号 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
|
|
|
###### HDSItemPageInformationModel
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
| ---------- | ------- | ------------------ | --------------------------------------- |
|
|
|
| pageNo | Integer | 当前页 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| pageSize | Integer | 每页显示的数据条数 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| totalCount | Integer | 商品总数 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
| pageCount | Integer | 总页码 | HDSLiveStoreModule/HDSLiveStoreConfig.h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### ---------------- 获取商品外链 ----------------
|
|
|
|
|
|
|
|
|
|
|
|
#### 获取商品外链(主动方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| ---------------------------------------------------- | ------------ | ------------------------------------- |
|
|
|
| (void)getItemLink: itemType: closure: itemLinkModel: | 获取商品外链 | HDSLiveStoreModule/HDSLiveStoreFunc.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
/// 获取商品外链(最小事件间隔大于 2000 ms)
|
|
|
/// @param itemId 商品ID
|
|
|
/// @param itemType 商品类型
|
|
|
/// @param closure 操作回调
|
|
|
/// @param itemLinkClosure 商品外链回调
|
|
|
- (void)getItemLink:(NSString *)itemId
|
|
|
itemType:(ItemType)itemType
|
|
|
closure:(completeHandler)closure
|
|
|
itemLinkModel:(itemLinkClosure)itemLinkClosure;
|
|
|
```
|
|
|
|
|
|
```objc
|
|
|
typedef NS_ENUM(NSUInteger, ItemType) {
|
|
|
///商品浮窗
|
|
|
ItemTypeFuchuang,
|
|
|
///列表展示商品
|
|
|
ItemTypeList,
|
|
|
};
|
|
|
|
|
|
typedef void (^itemLinkClosure)(HDSItemLinkModel *model);
|
|
|
```
|
|
|
|
|
|
##### HDSItemLinkModel
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
| ---- | ------ | -------- | ------------------------------------------- |
|
|
|
| link | String | 商品外链 | HDSLiveStoreModule/HDSLiveStoreFuncConfig.h |
|
|
|
|
|
|
|
|
|
|
|
|
### ---------------- 销毁直播带货 ----------------
|
|
|
|
|
|
|
|
|
|
|
|
#### 销毁直播带货(主动方法)
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
| ------------- | ------------ | ------------------------------------- |
|
|
|
| (void)killAll | 销毁直播带货 | HDSLiveStoreModule/HDSLiveStoreFunc.h |
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
```objc
|
|
|
/// 销毁
|
|
|
- (void)killAll;
|
|
|
```
|
|
|
|