虎牙开放平台文档

礼物

本章节介绍虎牙小程序的礼物模块,方便进行与礼物相关的处理。

开发者可以使用小程序基础库中的hyExt.context中的以下方法做相关的礼物管理:

注意:以上SDK在不同终端的是使用权限并不完全相同,具体适用终端可查看对应的SDK说明。

为了更好地理解相关的礼物功能,下面我们将会创建一个示例小程序来体验礼物的基本使用。

准备工作

参考创建小程序项目,初始化一个小程序项目,其中小程序类型选择:

  • 虎牙直播主站-面板
  • 虎牙直播APP-面板
  • 虎牙助手APP-面板
  • PC主播端-面板
  • PC观众端-面板

参考创建小程序,创建一个小程序和创建一个开发版本。

新增示例组件

新增src/demo.jssrc/demo.hycss文件

  • 新增src/demo.js文件
import { UI } from '@hyext/hy-ui' import React, { useState } from 'react' import './demo.hycss' const { View, Text, Button } = UI const Demo = (props) => { var [result, setResult] = useState('') // 引导当前观众送礼 function handleLeadGift() { hyExt.context.leadGift().then(() => { /** 引导成功 */ setResult('引导当前观众送礼leadGift引导成功') }).catch(err => { /** 引导失败 */ setResult('引导当前观众送礼leadGift引导失败,原因是' + JSON.stringify(err)) }) } // 监听当前直播间礼物变化消息 function handleOnGiftChange() { hyExt.context.onGiftChange({ sendNick: "huya_sendNick" }, (giftInfo) => { /** 监听礼物回调信息 */ setResult('onGiftChange监听礼物回调信息:' + JSON.stringify(giftInfo)) }).then(() => { /** 监听礼物成功 */ setResult('onGiftChange监听礼物成功') }).catch(err => { /** 监听礼物失败 */ setResult('onGiftChange监听礼物失败,原因是' + JSON.stringify(err)) }) } // 取消监听当前直播间礼物变化消息 function handleOffGiftChange() { hyExt.context.offGiftChange().then(() => { /** 取消监听成功 */ setResult('offGiftChange取消监听成功') }).catch(err => { /** 取消监听失败 */ setResult('offGiftChange取消监听失败,原因是' + JSON.stringify(err)) }) } // 获取当前直播间礼物配置 function handleGetGiftConf() { hyExt.context.getGiftConf().then(giftConfig => { /** 调用成功 */ setResult('getGiftConf调用成功,获取当前直播间礼物配置(这里为了方便,只获取其一):' + JSON.stringify(giftConfig[0])) }).catch(err => { /** 调用失败 */ setResult('getGiftConf调用失败,原因是' + JSON.stringify(err)) }) } // 当前观众送礼 function handleSendGift() { hyExt.context.sendGift({ giftId: 4, giftCount: 1 }).then(() => { /** 送礼成功 */ setResult('sendGift送礼成功') }).catch(err => { /** 送礼失败 */ setResult('sendGift送礼失败,原因是' + JSON.stringify(err)) }) } return ( <View> <Button className='button' onPress={handleLeadGift}>引导当前观众送礼leadGift</Button> <Button className='button' onPress={handleOnGiftChange}>监听当前直播间礼物变化消息onGiftChange</Button> <Button className='button' onPress={handleOffGiftChange}>取消监听当前直播间礼物变化消息offGiftChange</Button> <Button className='button' onPress={handleGetGiftConf}>获取当前直播间礼物配置getGiftConf</Button> <Button className='button' onPress={handleSendGift}> 当前观众送礼sendGift</Button> <Text className='result'>结果是:{result}</Text> </View> ) } export default Demo
  • 新增src/demo.hycss文件
.result { border: 10px; width: 700px; } .button { width: 700px; }

在小程序中使用组件

  • 修改viewer/app.js
--- a/examples/gift/viewer/app.js +++ b/examples/gift/viewer/app.js @@ -1,5 +1,6 @@ import { UI } from '@hyext/hy-ui' import React, { Component } from 'react' +import Demo from '../src/demo' import './app.hycss' const { View, Text } = UI @@ -7,7 +8,9 @@ const { View, Text } = UI class App extends Component { render() { return ( - <View className="container"><Text>hello world</Text></View> + <View className="container"> + <Demo></Demo> + </View> ) } }

在直播间中预览

参考在直播间预览的方式,运行npm start,启动开发服务,在直播间添加并打开 开发版小程序,预览如下:

  • web主站

2022 07 26 15 04 36

在web主站调用引导当前观众送礼(hyExt.context.leadGift)SDK 成功:

2022 07 26 15 06 54 2022 07 26 15 08 01

在web主站调用监听当前直播间礼物变化消息(hyExt.context.onGiftChange)SDK 成功:

2022 07 26 15 09 43 2022 07 26 15 12 41

在web主站调用取消监听当前直播间礼物变化消息(hyExt.context.offGiftChange)SDK 成功:

2022 07 26 15 13 49

在web主站调用获取当前直播间礼物配置(hyExt.context.getGiftConf)SDK 成功:

2022 07 26 15 16 35

在web主站调用当前观众送礼(hyExt.context.sendGift)SDK 成功:

2022 07 26 15 22 22 2022 07 26 15 24 48

  • 虎牙直播app

在虎牙直播app调用引导当前观众送礼(hyExt.context.leadGift)SDK 成功:

2022 07 26 15 49 53 2022 07 26 15 51 21

注意事项

  • 以上与礼物相关的方法具体适用终端不同,详情请参考相关接口的详细文档,但主要以观众端为主,所以这里不再对主播端进行展示
  • 使用引导当前观众送礼(hyExt.context.leadGift)一般需要和监听当前用户送礼的消息配合使用
  • 监听当前直播间礼物变化消息(hyExt.context.onGiftChange)只保留最新的一次监听,最大触发频率为每50毫秒一条
  • 当前观众送礼(hyExt.context.sendGift)需要用户授权使用

相关链接