샘플 코드
- 인쇄
샘플 코드
- 인쇄
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
messageCallback을 사용하여DOWNLOAD_COUPON,CLICK_PRODUCT,LOGIN_REQUIRED등의 이벤트에 수행할 동작을 재정의합니다.Shoplive Plugin을 사용해 방송과 목록을 화면에 표시합니다.
예제
<html>
<head>
<title>Shoplive - Simple Shoplive Plugin example</title>
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, viewport-fit=cover, shrink-to-fit=no"
/>
<script
type="text/javascript"
src="https://static.shoplive.cloud/shoplive.js"
></script>
<script>
const messageCallback = {
DOWNLOAD_COUPON: function (payload) {
// get Current Player
const player = cloud.shoplive.getPlayer();
// if, ONAIR player
if (
player.campaignStatus === "ONAIR" &&
player.campaignKey === payload.campaignKey
) {
if (navigator.clipboard && window.isSecureContext) {
// HTTPS 환경: Clipboard API 사용
navigator.clipboard.writeText(payload.coupon).then(function () {
player.sendMessage("showDialog", {
title: "Copy to clipboard completed.",
message: payload.coupon,
});
}).catch(function (error) {
console.error(error);
});
} else {
// HTTP 환경: execCommand fallback
const textarea = document.createElement("textarea");
document.body.appendChild(textarea);
textarea.value = payload.coupon;
textarea.select();
const successful = document.execCommand("copy");
document.body.removeChild(textarea);
if (successful) {
player.sendMessage("showDialog", {
title: "Copy to clipboard completed.",
message: payload.coupon,
});
}
}
}
},
CLICK_PRODUCT: function (payload) {
// 클릭한 상품 URL에 새로운 파라미터를 추가할 수 있습니다.
const url = payload.url + "¶meter=" +"{your_parameter}";
// 현재 창에서 상품 페이지로 이동합니다.
location.href = url;
},
LOGIN_REQUIRED: function (payload) {
alert("LOGIN_REQUIRED");
location.href = "YOUR_LOGIN_PAGE_URL";
},
};
cloud.shoplive.initPlugin({
accessKey: "{YOUR_ACCESS_KEY}",
messageCallback: messageCallback,
});
const userId = ""; // 필수 — 로그인한 사용자의 실제 고유 ID로 교체. 비로그인이면 빈 문자열 유지
const userName = ""; // 선택 — 채팅창에 표시할 실제 사용자 이름으로 교체
if (userId) {
cloud.shoplive.setUserObject({ userId: userId, userName: userName });
}
</script>
</head>
<body>
<div id="shoplive-overall-area"></div>
<script defer>
cloud.shoplive.setOverall("shoplive-overall-area");
</script>
</body>
</html>