Event handler
플레이어가 앱에 알려 주는 콜백의 전체 목록입니다. 각 콜백이 언제 호출되고 어떤 값이 오는지, 선언은 있으나 호출되지 않는 것까지 함께 다룹니다.
콜백 전체
플레이어가 앱에 알려 주는 이벤트는 세 가지입니다.
클로저 프로퍼티이므로 필요한 것만 등록합니다.
| 콜백 | 전달값 | 언제 호출되나 |
|---|---|---|
onClose |
없음 | 시청자가 닫기 버튼을 눌렀을 때. 화면을 내리는 것은 앱이 해야 합니다 → 닫기 |
onLogin |
없음 | 게스트가 회원 전용 기능을 눌러 「로그인 하시겠습니까?」 안내에서 로그인을 선택했을 때. 앱이 자기 로그인 화면을 띄워야 합니다 → 로그인이 필요한 순간 처리하기 |
onCouponEvent |
String?어드민에 등록한 링크 주소. nil 이거나 빈 값일 수 있습니다 |
custom 타입 쿠폰을 시청자가 받았을 때.다른 쿠폰 타입은 플레이어가 자체 처리합니다 → A. 쿠폰 사용하기 |
onProductClick |
String?이동할 구매 페이지 주소 |
시청자가 상품·배너를 눌러 구매 페이지로 이동할 때. 등록하지 않으면 플레이어가 외부 브라우저로 엽니다 → 5. 상품 클릭 관리 |
onCart |
String?어드민에 등록한 상품 ID. 비어 있을 수 있습니다 |
시청자가 장바구니 담기를 눌렀을 때 → 5. 상품 클릭 관리 |
선언은 있지만 호출되지 않는 것
아래 두 프로퍼티는 코드에 존재하고 컴파일도 됩니다.
하지만 SDK 내부에서 호출하는 지점이 없어 등록해도 실행되지 않습니다.
| 프로퍼티 | 기대되는 역할 | 현재 상태 |
|---|---|---|
onError |
오류를 앱에 전달 | 호출되지 않습니다. 오류는 로그·화면 표시로 확인해야 합니다 → Error codes |
onBroadcastInfoUpdate |
방송 정보 갱신을 앱에 전달 | 호출되지 않습니다. 앱이 접근할 수 있는 경로가 없습니다 |
⚠️ 컴파일 오류가 나지 않아 누락을 알아차리기 어렵습니다.
player.onError = { … } 를 작성해도 오류가 나지 않지만 그 코드는 실행되지 않습니다. 오류 처리를 붙였다고 생각하면 위험하므로 반드시 다른 확인 수단을 두세요.
💡 지원이 필요하다면 — 오류를 콜백으로 받아야 하는 요구가 있으면 담당자에게 알려 주세요.
등록 방법
플레이어를 실행하기 전에 등록합니다.
Swift
let player = SauceLivePlayerClient.getInstance( broadcastID: "라이브 ID", token: userToken, viewController: self ) player.onClose = { [weak self] in self?.dismiss(animated: true) } player.onLogin = { [weak self] in self?.presentLoginScreen() } player.onCouponEvent = { linkUrl in print(linkUrl ?? "") } player.startPlayer() // 콜백 등록 후 호출
💡 등록하지 않은 콜백은 무시됩니다. 필요한 것만 대입합니다. 단 게스트 시청을 허용한다면
onLogin 은 반드시 등록하세요. 없으면 시청자가 로그인을 눌러도 아무 일이 일어나지 않습니다.
콜백으로 오지 않는 것
아래는 콜백 자체가 없습니다. 플레이어가 자체 처리하거나 앱이 개입할 수 없습니다.
| 이벤트 | 현재 동작 |
|---|---|
| 채팅 메시지 | 플레이어가 자체 처리. 송·수신 모두 불가 |
| 쿠폰 (custom 외) | 플레이어가 자체 처리 |
| PIP 상태 변경 | SDK 내부에서만 처리됩니다. 앱이 상태를 조회하려면 PIPKit.isPIP 를 사용하세요 |
Updated about 1 hour ago
Did this page help you?