|
|
|
## 云直播投票功能接入文档
|
|
|
|
|
|
|
|
[TOC]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 结构图
|
|
|
|
|
|
|
|
![iOS-结构图](image/iOS-结构图.png)
|
|
|
|
|
|
|
|
### 时序图
|
|
|
|
|
|
|
|
![投票功能时序图](image/投票功能时序图.png)
|
|
|
|
|
|
|
|
### 接入方式
|
|
|
|
|
|
|
|
#### 本地集成
|
|
|
|
|
|
|
|
| 新增依赖库(动态库) | 接入方式 | 签名选择 |
|
|
|
|
| ------------------------------ | ----------------------------------------------------- | ------------ |
|
|
|
|
| HDSVoteModule.framework | 下载zip包中 HDSVoteModule 文件夹下,拖入项目中 | Embed & Sign |
|
|
|
|
| HDSInteractionEngine.framework | 下载zip包中 HDSInteractionEngine 文件夹下,拖入项目中 | Embed & Sign |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### cocoapods 集成
|
|
|
|
|
|
|
|
| 新增依赖库(动态库) | 接入方式 | 是否必须 |
|
|
|
|
| ------------------------------ | ------------------------------------------------ | -------- |
|
|
|
|
| HDSVoteModule.framework | 在Podfile文件中添加: Pod 'HDSVoteModule' | 是 |
|
|
|
|
| HDSInteractionEngine.framework | 在Podfile文件中添加: Pod 'HDSInteractionEngine' | 是 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 新增 API
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### ---------------- 前置条件 ----------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 房间互动功能配置信息(代理方法)
|
|
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
|
| ---------------------------------- | ------------ | ------------------- |
|
|
|
|
| (void)onInteractionFunctionConfig: | 互动功能配置 | CCSDK/RequestData.h |
|
|
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
|
|
```objc
|
|
|
|
/// 互动功能配置
|
|
|
|
/// @param configModel 配置信息
|
|
|
|
- (void)onInteractionFunctionConfig:(HDSInteractionFunctionModel *)configModel;
|
|
|
|
```
|
|
|
|
|
|
|
|
##### HDSInteractionFunctionModel
|
|
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
|
| --------- | ----------------------- | -------- | --------------------- |
|
|
|
|
| voteModel | HDSInteractionVoteModel | 投票配置 | CCSDK/PlayParameter.h |
|
|
|
|
|
|
|
|
###### HDSInteractionVoteModel
|
|
|
|
|
|
|
|
| 参数 | 注释 | 所在类文件 |
|
|
|
|
| ------------------ | ------------------------------------------- | --------------------- |
|
|
|
|
| voteFunctionConfig | 投票功能配置 0:关闭 1:直播间配置 2:全局配置 | 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)initVoteFuncWithConfig: | 初始化投票功能 | HDSVoteModule/HDSVoteFunc.h |
|
|
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
|
|
```objc
|
|
|
|
/// 初始化投票功能
|
|
|
|
/// @param config 配置项
|
|
|
|
/// @param closure 操作回调
|
|
|
|
- (instancetype)initVoteFuncWithConfig:(HDSVoteFuncConfig *)config closure:(completeHandler)closure
|
|
|
|
```
|
|
|
|
|
|
|
|
##### HDSVoteFuncConfig
|
|
|
|
|
|
|
|
| 参数 | 类型 | 注释 | 所在类文件 |
|
|
|
|
| -------- | ------ | ------ | --------------------------------- |
|
|
|
|
| userId | String | 用户ID | HDSVoteModule/HDSVoteFuncConfig.h |
|
|
|
|
| userName | String | 用户名 | HDSVoteModule/HDSVoteFuncConfig.h |
|
|
|
|
| roomId | String | 房间ID | HDSVoteModule/HDSVoteFuncConfig.h |
|
|
|
|
| token | String | token | HDSVoteModule/HDSVoteFuncConfig.h |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 查看投票列表(主动方法)
|
|
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
|
| --------------------------------------------- | ------------ | --------------------------- |
|
|
|
|
| (void)getVoteListClosure: information: | 查看投票列表 | HDSVoteModule/HDSVoteFunc.h |
|
|
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
|
|
```objc
|
|
|
|
/// 查看投票列表
|
|
|
|
/// @param closure 操作回调
|
|
|
|
/// @param infoCallBack 投票列表信息
|
|
|
|
- (void)getVoteListClosure:(completeHandler)closure information:(VoteListInfoClosure)infoCallBack;
|
|
|
|
```
|
|
|
|
|
|
|
|
### ---------------- 查看单个投票详情 ----------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 查看单个投票详情(主动方法)
|
|
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
|
| --------------------------------------- | ------------ | --------------------------- |
|
|
|
|
| (void)getVoteDetailClosure: closure: information: | 查看单个投票详情 | HDSVoteModule/HDSVoteFunc.h |
|
|
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
|
|
```objc
|
|
|
|
/// 查看单个投票详情
|
|
|
|
/// @param closure 操作回调
|
|
|
|
/// @param infoCallBack 投票列表信息
|
|
|
|
- (void)getVoteDetailClosure:(NSString *)activityId closure:(completeHandler)closure information:(VoteInfoClosure)infoCallBack;
|
|
|
|
```
|
|
|
|
|
|
|
|
### ---------------- 重载投票事件 ----------------
|
|
|
|
#### 重载投票事件(主动方法)
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
|
| ----------------------------- | ------------ | --------------------------- |
|
|
|
|
| (void)reloadVoteFuncWithClosure: | 重载投票事件 | HDSVoteModule/HDSVoteFunc.h |
|
|
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
|
|
```objc
|
|
|
|
/// 重载投票功能
|
|
|
|
/// @param closure 操作回调
|
|
|
|
- (void)reloadVoteFuncWithClosure:(completeHandler)closure;
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### ---------------- 发送投票事件 ----------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 发送投票事件(主动方法)
|
|
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
|
| ----------------------------- | ------------ | --------------------------- |
|
|
|
|
| (void)sendVoteActivityId: optionIdList: closure: | 发送投票事件 | HDSVoteModule/HDSVoteFunc.h |
|
|
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
|
|
```objc
|
|
|
|
/// 发送投票事件 (最小时间间隔大于 2000 ms)
|
|
|
|
/// @param activityId 投票活动ID
|
|
|
|
/// @param optionIdList 选项ids
|
|
|
|
/// @param closure 操作回调
|
|
|
|
- (void)sendVoteActivityId:(NSString *)activityId optionIdList:(NSArray<NSNumber *> *)optionIdList closure:(completeHandler)closure;
|
|
|
|
```
|
|
|
|
|
|
|
|
### ---------------- 接收投票事件 ----------------
|
|
|
|
#### 接收投票事件(被动方法)
|
|
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
|
| ----------------------------- | ------------ | --------------------------- |
|
|
|
|
| (void)onVoteEventWithMessage: | 发送投票事件 | HDSVoteModule/HDSVoteFunc.h |
|
|
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
|
|
```objc
|
|
|
|
/// 接收投票 Pusher 消息
|
|
|
|
/// @param message 消息
|
|
|
|
- (void)onVoteEventWithMessage:(HDSVoteModel *)message;
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### ---------------- 销毁投票组件 ----------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 销毁投票组件(主动方法)
|
|
|
|
|
|
|
|
| 方法 | 注释 | 所在类文件 |
|
|
|
|
| ------------- | ------------ | --------------------------- |
|
|
|
|
| (void)killAll | 销毁投票组件 | HDSVoteModule/HDSVoteFunc.h |
|
|
|
|
|
|
|
|
示例代码
|
|
|
|
|
|
|
|
```objc
|
|
|
|
/// 销毁
|
|
|
|
- (void)killAll;
|
|
|
|
```
|
|
|
|
|