简介
GiftStore 提供了一套完整的礼物管理 API,包括发送礼物、刷新礼物列表、设置语言和监听礼物事件。
通过该类,可以在直播间内实现礼物互动功能。
重要:
使用 create(liveID:) 工厂方法创建 GiftStore 实例,需要传入有效的直播间 ID。
说明:
礼物状态更新通过 state 发布者传递。订阅它以接收房间内礼物数据的实时更新。
功能特性
礼物发送:支持向当前房间发送指定礼物。
礼物列表:获取和刷新当前房间可用的礼物列表。
语言设置:设置礼物信息的展示语言。
事件监听:监听礼物接收事件。
可订阅数据
GiftState 的字段描述如下:
属性名 | 类型 | 描述 |
usableGifts | 当前房间可用的所有礼物分类及礼物列表。 |
API 列表
函数名 | 描述 |
创建礼物管理实例。 | |
礼物事件发布者。 | |
发送礼物。 | |
刷新可用礼物列表。 | |
设置展示语言。 |
创建实例
create
创建礼物管理实例。
public static func create(liveID: String) -> GiftStore {let store: GiftStoreImpl = StoreFactory.shared.getStore(liveId: liveID)return store}
版本信息
从 3.5 版本开始支持。
参数说明
参数名 | 类型 | 是否必填 | 描述 |
liveID | String | 必填 | 直播间ID。 |
观察状态和事件
giftEventPublisher
礼物事件发布者
礼物操作
sendGift
向当前房间发送指定礼物
public func sendGift(giftID: String,count: UInt,completion: CompletionClosure?) {fatalError("\\(#function) must be overridden by subclass")}
版本信息
从 3.5 版本开始支持。
参数说明
参数名 | 类型 | 是否必填 | 描述 |
giftID | String | 必填 | 要发送的礼物唯一标识 ID。 |
count | UInt | 必填 | 单次发送的礼物数量。 |
completion | 必填 | 完成回调(成功/失败状态)。 |
refreshUsableGifts
手动刷新当前房间的可用礼物列表。
public func refreshUsableGifts(completion: CompletionClosure?) {fatalError("\\(#function) must be overridden by subclass")}
版本信息
从 3.5 版本开始支持。
参数说明
参数名 | 类型 | 是否必填 | 描述 |
completion | 必填 | 完成回调(成功时可通过 state 获取最新礼物列表,失败时返回错误信息)。 |
setLanguage
设置礼物信息的展示语言。
public func setLanguage(_ language: String) {fatalError("\\(#function) must be overridden by subclass")}
版本信息
从 3.5 版本开始支持。
参数说明
参数名 | 类型 | 是否必填 | 描述 |
language | String | 必填 | 语言代码("zh-CN" 表示中文,"en" 表示英文),设置完成展示界面刷新后礼物名称、描述等会同步更新为对应语言。 |
数据结构
Gift
礼物数据模型,包含单个礼物的完整属性信息。
属性 | 类型 | 说明 |
giftID | String | 礼物ID。 |
name | String | 礼物名称。 |
desc | String | 礼物描述。 |
iconURL | String | 礼物图标图片的网络 URL,用于加载礼物缩略图。 |
resourceURL | String | 礼物动效资源文件的网络 URL,用于加载礼物展示动效。 |
level | UInt | 礼物等级,用于区分礼物稀有度或价值层级。 |
coins | UInt | 礼物价格(金币)。 |
extensionInfo | [String: String] | 礼物扩展信息,可自定义字段(如特效类型、赠送限制等)。 |
GiftCategory
礼物分类。
属性 | 类型 | 说明 |
categoryID | String | 分类唯一标识 ID,用于区分不同礼物分类。 |
name | String | 分类展示名称,用于 UI 分类显示(如 "热门礼物","高级礼物")。 |
desc | String | 分类描述信息,用于说明该分类的特点。 |
extensionInfo | [String: String] | 分类扩展信息,包含自定义字段(如排序权重、显示样式等)。 |
giftList | 当前分类下的所有礼物列表。 |
GiftState
礼物状态,管理当前房间的礼物数据状态,支持实时更新并可被订阅监听。
属性 | 类型 | 说明 |
usableGifts | 当前房间可用的所有礼物分类及礼物列表。 |
GiftListener
礼物事件,用于接收直播间/语音聊天房内的礼物动态。
方法
onReceiveGift: 收到新礼物消息的事件回调。当直播间/语音聊天房内有其他观众发送礼物时,会触发该事件并返回相关信息。
case onReceiveGift(liveID: String, gift: Gift, count: UInt8, sender: LiveUserInfo)
参数名 | 类型 | 说明 |
liveID | String | 直播间ID。 |
gift | 礼物信息。 | |
count | UInt8 | 礼物数量。 |
sender | 礼物发送者信息。 |