챗봇 위젯 커스터마이징

챗봇 위젯 커스터마이징

이 문서는 임베디드 챗봇 위젯 UI를 우리 사이트에 맞게 커스텀하게 제어하기 위해 제공되는 공개 함수 두 가지, toggle()layoutUpdate(widget) 사용법을 설명합니다.

젤라또 어드민에서 제공하는 위젯 설정 대신, 사이트에서 챗봇 위젯을 커스텀하게 사용할 때 선택적으로 사용해 주세요.

두 함수는 초기화(init) 이후, 필요한 시점에 호출해 주세요.

챗봇 위젯을 커스터마이징 하기 위해서는 우선 젤라또에서 제공하는 챗봇 위젯 숨김 처리가 필요합니다. 현재 해당 기능은 별도 문의 요청 후 적용할 수 있습니다.

기능 문의 및 추가 확인 사항은 [email protected] 으로 연락해 주세요.

커스터마이징 주의 사항

  • 챗봇 위젯의 크기와 위치를 커스텀 한 후 어드민(관리자 화면) 젤라또 만들기 > 스타일/위젯 설정에 값을 반영해 주세요.


제공 함수

요약

함수
설명

gelatto.toggle()

  • 챗봇 위젯 UI의 표시/숨김을 토글

  • 포커스/스크롤 포함한 UI 상태를 안전하게 전환

  • 데스크톱/모바일 환경 모두 지원하며 올바른 전환 처리를 진행

gelatto.layoutUpdate(widget: 필수)

  • 현재 화면(디바이스/뷰포트)에 맞게 챗봇 대화창과 챗봇 위젯 버튼 레이아웃을 반응형 기준으로 재계산해 즉시 반영

  • (widget) 인자 필수

toggle()

  • 설명: 챗봇 사용자 대화창(컨테이너)의 열림/닫힘 상태를 전환합니다.

  • 내용

    • 닫힘 → 열림: 챗봇 사용자 대화창(컨테이너) 표시, 포커스/스크롤 처리

    • 열림 → 닫힘: 챗봇 사용자 대화창(컨테이너) 숨김

항목
설명

입력 파라미터

없음

반환 값

없음

사용 예시

// JavaScript
// 챗봇 위젯 버튼 클릭 등 사용자 액션에 바인딩
document.getElementById('openChatBtn').addEventListener('click', () => {
  if (window.gelatto && window.gelatto.toggle) {
     gelatto.toggle();
  }
});

layoutUpdate(widget)

  • 설명: 챗봇 사용자 대화창(컨테이너)과 챗봇 위젯 버튼(플로팅 버튼)의 위치/크기를 현재 Viewport(데스크톱/모바일)에 맞게 재설정합니다.

  • 내용

    • Viewport에 따라 모바일/데스크톱 분기

    • 챗봇 사용자 대화창(컨테이너) 최대 크기, 라운딩, 하단 오프셋 계산 / 확장·축소 상태에 따라 사이즈 스위칭

    • 채팅창 위치·여백 재계산

항목
설명

입력 파라미터

widget (필수): 챗봇 레이아웃 위치 계산에 사용할 옵션 오브젝트

반환 값

void

widget 옵션 필드 예시

필드명
타입
설명

posType

string

'RIGHT_BOTTOM' | 'LEFT_BOTTOM' (데스크톱 위치)

posSide

number

데스크톱 가로 여백(px)

posBottom

number

데스크톱 세로 여백(px)

mobilePosType

string

'RIGHT_BOTTOM' | 'LEFT_BOTTOM' (모바일 위치)

mobilePosSide

number

모바일 전용 가로 여백(px)

mobilePosBottom

number

모바일 전용 세로 여백(px)

size

number

원형 플로팅 버튼 직경(px)

사용 예시

// JavaScript
// 즉시 새로운 챗봇 위치/여백을 반영하고 싶을 때
gelatto.layoutUpdate({
  posType: 'LEFT_BOTTOM',
  posSide: 24,
  posBottom: 24,
  mobilePosType: 'RIGHT_BOTTOM',
  mobilePosSide: 16,
  mobilePosBottom: 16,
  size: 56
});

자주 묻는 질문 (FAQ)

layoutUpdate(widget) 함수를 호출했는데 위치가 바뀌지 않습니다.

widget 필드 값이 유효하지 않거나(예: '20px'20), UI가 아직 렌더링되지 않았을 수 있습니다.

Last updated

Was this helpful?