保利威文档中心

幫助中心

卡片推播

更新時間: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 方法去銷毀實例。

联系客服,在线咨询