卡片推送
更新时间:2024-04-22 19:18:32
功能概述
本模块主要用于处理卡片推送相关的逻辑,监听卡片开始推送、结束推送等消息,接入方可以根据这些事件流程定制自己的UI界面。
初始化及销毁
注意:在实例化该模块并进行使用之前,需要对SDK进行初始化配置,详细见参考文档。
初始化卡片推送实例
在线文件引入方式
// script 标签引入,根据版本号引入JS版本。
<script src="https://websdk.videocc.net/interactions-receive-sdk/0.24.0/lib/polyv-ir.umd.js"></script>
<script>
const { PushCard } = window.PolyvIRSDK;
</script>
import 方式引入(推荐)
import { PushCard } from '@polyv/interactions-receive-sdk';
const pushCardSdk = new PushCard();
卡片推送实例销毁
pushCardSdk.destroy();
实例属性
| 属性名 | 类型 | 说明 |
|---|---|---|
| events | Object | 卡片推送模块事件 |
实例方法
| 方法名 | 入参 | 出参 | 说明 |
|---|---|---|---|
| getResidueTime | void | 当前实例对象 | 获取卡片剩余时间 |
| toClose | void | void | 关闭卡片 |
| getPushCardData | roomId、cardId | Promise | 获取推送卡片数据 |
使用流程
监听 "卡片开始推送(start)" 事件
在直播后台推送卡片,本SDK内部会触发 pushCardSdk.events.START 事件,接入方可以监听该事件,然后再调用 getPushCardData(roomId, cardId) 获取更加具体的卡片数据,用来展示卡片或卡片入口等界面。
pushCardSdk.on(pushCardSdk.events.START, async function(msg) {
console.log(`卡片开始推送:`, msg);
const res = await pushCardSdk.getPushCardData(msg.roomId, msg.id);
});
pushCardSdk.events.START返回的数据对象包含以下属性
| 属性名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 房间号 |
| id | Number | 卡片ID |
| total | Number | 卡片显示总时长,单位:秒 |
| time | Number | 卡片显示剩余时长,单位:秒 |
| entrance | String | 是否有卡片入口,Y表示有,N表示没有 |
| lookTime | Number | 等待多久后显示卡片,单位:秒 |
getPushCardData返回的对象包含以下属性
| 属性名 | 类型 | 说明 |
|---|---|---|
| conditionValue | Number | 等待多久后显示,单位:秒 |
| duration | Number | 卡片推送总时长,单位:秒 |
| countdownMsg | String | 倒计时文案 |
| enterEnabled | String | 是否有卡片入口,Y表示有,N表示没有 |
| imageType | String | 封面类型:redpack/giftbox/custom |
| cardImage | String | 当封面类型为custom(自定义)时,封面图片链接 |
| enterImage | String | 当封面类型为custom(自定义)时,入口图片链接 |
| link | String | 跳转链接 |
| showCondition | String | 卡片弹出方式:PUSH表示马上弹出,WATCH表示观看conditionValue秒后弹出 |
| title | String | 卡片标题 |
| redirectType | String | 打开链接的方式,tab或iframe,默认为tab(即打开新的标签页),iframe为自定义类型,用户可根据实际业务情况进行展示 |
监听 “卡片停止推送(CANCEL)” 事件
在直播后台取消卡片推送,本SDK会触发 pushCardSdk.events.CANCEL 事件
pushCardSdk.on(pushCardSdk.events.CANCEL, function(msg) {
console.log('卡片停止推送');
});
获取卡片倒计时
在卡片弹出后,若卡片有倒计时,可以使用 pushCardSdk.getResidueTime() 获取卡片剩余的时间,获取到数据后会触发pushCardSdk.events.GET_RESIDUE_TIME事件
pushCardSdk.on(pushCardSdk.events.GET_RESIDUE_TIME, function(msg) {
console.log('卡片剩余显示时间:', msg.time);
});
注意
如果不需要再使用卡片推送SDK时,请调用SDK实例的destroy方法去销毁实例。
