iframe 연동 가이드
소스라이브 플레이어를 iframe으로 직접 삽입할 때 발생할 수 있는 성능 저하, 브릿지 이벤트 통신 오류, 브라우저 정책 이슈를 방지하기 위한 주의사항을 안내합니다.
소스라이브는 라이브러리 연동 또는 URL 연동을 권장합니다. 이 가이드는 기존에 iframe 방식으로 구현된 환경에서 주의사항과 제약을 안내하는 참고 문서입니다.
브라우저 정책에 의해 자동 재생·전체 화면 등의 기능이 제한되지 않도록 allow 속성을 반드시 포함하세요.
<iframe id="sauce-player" src="https://player.sauceflex.com/broadcast/{라이브_ID}" width="100%" height="100%" allow="autoplay; fullscreen; picture-in-picture" title="Saucelive Player" ></iframe>
allow 속성에 autoplay; fullscreen; picture-in-picture를 포함하지 않으면 자동 재생이 차단되거나 전체 화면 전환이 동작하지 않을 수 있습니다.
플레이어 진입 시 초기 빈 화면·로딩 지연을 줄이기 위한 세 가지 권장 사항입니다.
소스라이브 플레이어는 반드시 최상위 window 기준 자식 Depth 1 위치에서 직접 호출해야 합니다. 다른 iframe 내부에서 플레이어를 다시 삽입하는 중첩 구조는 지원하지 않습니다.
└ iframe (Saucelive Player)
└ iframe
└ iframe (Saucelive Player)
부모 페이지의 <head>에 아래 태그를 추가하면 브라우저가 소스라이브 서버와 미리 연결을 맺어 플레이어 로딩 속도를 단축할 수 있습니다.
<link rel="preconnect" href="https://player.sauceflex.com/" />
preconnect 대상은 실제 iframe src에 사용하는 플레이어 도메인과 동일해야 합니다.
단축 URL(sflex.us 등)은 내부적으로 301/302 리다이렉트가 발생하여 추가 대기 시간을 유발합니다. iframe src에는 리다이렉트가 없는 최종 목적지 Full URL을 직접 사용하세요.
플레이어의 닫기, 상품 클릭 등 이벤트를 부모 페이지에서 처리하려면 message 리스너를 등록해야 합니다. iframe 환경에서도 동일한 방식으로 동작합니다.
window.addEventListener('message', (event) => { try { const { key, params } = JSON.parse(event.data) switch (key) { case 'sauceflexMoveExit': // 플레이어 닫기 처리 document.getElementById('sauce-player').style.display = 'none' break case 'sauceflexMoveProduct': // 상품 클릭 처리 if (params.linkUrl) window.location.href = params.linkUrl break // 추가 이벤트는 브릿지 이벤트 레퍼런스 참고 } } catch (e) { /* 비형식 메시지 무시 */ } })
플레이어는 기본적으로 내부 스크롤이 잠겨 있습니다. 부모 페이지 레이아웃에 따라 스크롤이 필요한 경우 아래 URL 파라미터를 추가하세요.
unlockIframeScroll=trueiframe 방식은 브라우저 보안 정책의 영향을 직접 받습니다. 아래 제약사항을 사전에 파악하고 대응 방안을 준비하세요.
localStorage·sessionStorage에 접근할 수 없습니다. 플레이어와 부모 페이지 간 상태 공유가 필요한 경우 postMessage를 통한 명시적 메시지 전달 방식으로 대체해야 합니다.window.open()을 호출하면 브라우저 팝업 차단 정책에 의해 새 창이 열리지 않을 수 있습니다. 상품 상세 페이지 이동 등 새 창이 필요한 경우, 부모 페이지에서 브릿지 이벤트를 수신해 직접 처리하는 방식으로 구현해야 합니다.CookieManager.setAcceptThirdPartyCookies(webView, true)를 명시적으로 설정해야 쿠키가 정상 저장됩니다.iframe 연동 완료 후 아래 항목을 최종 점검하세요.
플레이어는 최상위 페이지에서 직접 삽입되어야 합니다.
단축 URL(
sflex.us 등) 대신 최종 목적지 URL을 사용하세요.allow 속성을 포함했나요?autoplay; fullscreen; picture-in-picture가 모두 포함되어야 합니다.sauceflexMoveExit 등 주요 이벤트를 처리하는 message 리스너가 필요합니다.unlockIframeScroll=true를 적용했나요?기본값은 스크롤 잠금 상태입니다.
preconnect를 추가했나요?선택 사항이지만 플레이어 로딩 속도 향상에 효과적입니다.
Updated about 14 hours ago