GiftStore

Introduction

GiftStore provides a complete set of gift management APIs, including sending gifts, refreshing gift lists, setting language, and listening to gift events.
Through this class, gift interaction features can be implemented in live rooms.
Important:
Use the create(liveID:) factory method to create a GiftStore instance, passing a valid live room ID.
Note:
Gift state updates are delivered through the state publisher. Subscribe to it to receive real-time updates of gift data in the room.

Features

Gift Sending:Support sending specified gifts to the current room
Gift List:Get and refresh the available gift list in the current room
Language Setting:Set the display language for gift information
Event Listening:Listen to gift receiving events

Subscribable Data

GiftState fields are described below:
Property
Type
Description
usableGifts
All gift categories and gift lists available in the current room.

API List

Function
Description
Create gift management instance.
Gift event publisher.
Send gift.
Refresh available gift list.
Set display language.

Creating Instance

create

Create gift management instance.
public static func create(liveID: String) -> GiftStore {
let store: GiftStoreImpl = StoreFactory.shared.getStore(liveId: liveID)
return store
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
liveID
String
Required
Live room ID.

Observing State and Events

giftEventPublisher

Gift event publisher

Gift Operations

sendGift

Send a specified gift to the current room
public func sendGift(giftID: String,
count: UInt,
completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
giftID
String
Required
Unique identifier ID of the gift to send.
count
UInt
Required
Number of gifts to send at once.
completion
Required
Completion callback (success/failure status).

refreshUsableGifts

Manually refresh the available gift list in the current room.
public func refreshUsableGifts(completion: CompletionClosure?) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
completion
Required
Completion callback (on success, the latest gift list can be obtained through state; on failure, error information is returned).

setLanguage

Set the display language for gift information.
public func setLanguage(_ language: String) {
fatalError("\(#function) must be overridden by subclass")
}
Version
Supported since version 3.5.
Parameters
Parameter
Type
Required
Description
language
String
Required
Language code ("zh-CN" for Chinese, "en" for English). After setting, gift names, descriptions, etc. will be updated to the corresponding language when the display interface is refreshed.

Data Structures

Gift

Gift data model, containing complete attribute information of a single gift.
Property
Type
Description
giftID
String
Gift ID.
name
String
Gift name.
desc
String
Gift description.
iconURL
String
Network URL of the gift icon image, used to load gift thumbnails.
resourceURL
String
Network URL of the gift animation resource file, used to load gift display animations.
level
UInt
Gift level, used to distinguish gift rarity or value tier.
coins
UInt
Gift price (coins).
extensionInfo
[String: String]
Gift extension information, customizable fields (such as effect type, sending restrictions, etc.).

GiftCategory

Gift category.
Property
Type
Description
categoryID
String
Category unique identifier ID, used to distinguish different gift categories.
name
String
Category display name, used for UI category display (such as "Popular Gifts", "Premium Gifts").
desc
String
Category description information, used to explain the characteristics of this category.
extensionInfo
[String: String]
Category extension information, containing custom fields (such as sorting weight, display style, etc.).
giftList
All gifts under the current category.

GiftState

Gift state, managing the gift data state of the current room, supporting real-time updates and subscription listening.
Property
Type
Description
usableGifts
All gift categories and gift lists available in the current room.

GiftListener

Gift event, used to receive gift dynamics in live rooms/voice chat rooms.
Methods
onReceiveGift: Event callback when receiving a new gift message. This event is triggered when other viewers send gifts in the live room/voice chat room, returning relevant information.
case onReceiveGift(liveID: String, gift: Gift, count: UInt8, sender: LiveUserInfo)
Parameter
Type
Description
liveID
String
Live room ID.
gift
Gift information.
count
UInt8
Gift count.
sender
Gift sender information.