initialize

ChannelIO를 초기화 합니다. 다른 ChannelIO의 메서드를 사용하기 전에 무조건 한 번 호출되어야 합니다.

파라미터타입기본값설명
application@NonNull Application필수Application 객체입니다.
attachViewbooleantrue모든 액티비티에 채널톡 버튼과 팝업을 표시할지 여부입니다. true인 경우 기본적으로 모든 액티비티에 채널톡 버튼과 팝업을 표시하지만, @SkipAttachChannelView 어노테이션을 액티비티에 사용할 경우 해당 액티비티에 부착되는 것을 막을 수 있습니다. false인 경우 채널톡 버튼과 팝업이 표시되지 않습니다. 이때 ChannelPluginListener를 통해서 적절한 타이밍에 직접 UI를 표시할 수 있습니다.

setListener

ChannelIO에서 발생하는 이벤트를 받을 수 있도록 설정합니다.

파라미터타입기본값설명
listener@Nullable ChannelPluginListener필수이벤트를 전달 받을 리스너 객체입니다. null을 전달하면 리스너가 제거됩니다.

clearListener

setListener()를 통해 설정된 리스너 객체를 제거합니다. setListener(null)의 별칭입니다.

boot

메신저 표시, 상담 채팅 열기 등 채널과의 연결이 필요한 기능을 사용하기 위해서 SDK를 특정 채널에 연결합니다. 더 자세한 사항은 채널톡 사용하기를 참고합니다. boot() 완료 후에 해야 하는 작업은 bootCallback 파라미터를 사용합니다.

파라미터타입기본값설명
bootConfig@NonNull BootConfig필수부트 설정입니다. 플러그인 키, 채널톡 버튼 위치 등을 설정합니다.
bootCallback@Nullable BootCallbacknull부트 결과를 알 수 있는 콜백입니다.

📘

일부 기능을 사용하고 싶지 않거나 채널과의 연결을 끊고 싶은 경우 각각 sleep()shutdown()을 사용합니다.

sleep

시스템 푸시 알림 수신과 track()을 통한 이벤트 트래킹을 제외한 모든 기능을 비활성화 합니다. 채널톡 서버와의 실시간 통신이 끊기기 때문에 마케팅 팝업, 채팅 사용이 불가능합니다.

shutdown

boot()를 통해 구축한 채널과의 모든 연결을 해제합니다. sleep()이 시스템 푸시 알림 수신과 이벤트 트래킹을 허용하는 반면 shutdown()은 모든 기능을 사용할 수 없도록 합니다.

예를 들어 로그아웃 한 이후에 채널톡을 사용하지 않는 경우 시스템 푸시 알림을 수신할 수 없도록 shutdown()을 호출하는 것이 보안상 안전할 수 있습니다.

showChannelButton

이 함수를 호출한 이후 사용자가 보는 모든 액티비티에 대해 채널 버튼을 표시합니다.

이 함수는 boot()가 완료되기 전에 호출해도 적용됩니다. 이는 내부적으로 채널톡 안드로이드 SDK는 “전역 버튼 표시 상태”를 관리하고, boot()가 완료되어도 그 상태는 유지되기 때문입니다.

hideChannelButton

이 함수를 호출한 이후 사용자가 보는 모든 액티비티에 대해 채널톡 버튼을 숨깁니다.

showMessenger

메신저를 표시합니다. 커스텀 런처를 사용하는 경우 버튼을 클릭했을 때 이 메서드를 호출할 수 있습니다.

파라미터타입기본값설명
activity@NonNull Activity필수액티비티 객체입니다.

hideMessenger

메신저를 닫습니다. 사용자가 메신저의 닫기 버튼을 눌렀을 때의 동작과 같습니다.

openChat

채팅방을 엽니다. 새로운 상담을 열거나 기존에 존재하는 채팅방을 열 수 있습니다.

파라미터타입기본값설명
activity@NonNull Activity필수액티비티 객체입니다.
chatId@Nullable String필수열고 싶은 채팅방의 ID입니다. chatId가 유효하지 않거나 null일 때는 새로운 상담이 열립니다.
message@Nullable String필수채팅방을 열 때 미리 채워져있는 메시지입니다. chatIdnull일 때만 효과가 있습니다.

openSupportBot Deprecated

❗️

해당 API는 Deprecated 되었습니다. openWorkflow를 사용해 주세요.

서포트봇에 대한 지원 종료로 인해 해당 API는 Deprecated 되었으며, 해당 API는 openWorkflow SDK API와 같은 동작을 수행하게 됩니다. message 인자는 무시됩니다.

유저챗을 열어 특정 서포트봇을 실행합니다.

매개변수타입필수 여부설명
activity@NonNull Activity필수액티비티 객체입니다.
supportBotId@Nullable String필수서포트봇의 ID 입니다. supportBotId가 유효하지 않거나, null인 경우 채팅방을 닫습니다.
message@Nullable String필수supportBotId가 유효할 때 입력창에 미리 채워져있는 메시지입니다.

openWorkflow

유저챗을 열며 특정 워크플로우를 실행합니다.

  • 워크플로우 트리거가 “채널톡 버튼에서 새 상담을 시작할 때”로 설정된 경우에만 가능합니다.
  • workflowId 인자로 전달한 값에 대응하는 워크플로우가 존재하면 해당 워크플로우가 실행됩니다. 만약 workflowId를 전달하지 않으면 아무런 동작이 수행되지 않습니다.
  • 전달한 workflowId에 대응하는 워크플로우가 존재하지 않으면 에러페이지가 보여집니다.
매개변수타입필수 여부설명
activity@NonNull Activity필수액티비티 객체입니다.
workflowId@Nullable String필수워크플로우의 ID입니다.

track

현재 유저에 대한 이벤트를 추적합니다. 자세한 내용은 이벤트 추적하기를 참조합니다.

파라미터타입기본값설명
eventName@NonNull String필수추적할 이벤트 이름입니다. 최대 30자입니다.
eventProperty@Nullable Map<String, Object>null이벤트에 대한 추가적인 정보입니다.

🚧

eventProperty 파라미터는 Object 타입으로 값을 받고 있지만 JSON으로 변환이 실패하면 오류가 발생할 수 있습니다. 특히 순환 참조를 하지 않도록 주의해야 합니다.

updateUser

유저를 업데이트 합니다.

파라미터타입기본값설명
userData@NonNull UserData필수업데이트 할 유저 정보입니다.
callback@Nullable UserUpdateCallback필수유저 업데이트 결과를 받을 콜백입니다.

addTags

유저에게 태그를 추가합니다.

파라미터타입기본값설명
tagsvararg String필수추가할 태그입니다.
• 추가할 수 있는 태그의 최대 개수는 10개입니다.
• 태그는 소문자로 변환되어 저장됩니다.
• 이미 추가된 태그는 무시됩니다.
• null이나 빈 문자열, 혹은 이를 포함하는 리스트는 허용하지 않습니다.
callback@Nullable UserUpdateCallbacknull유저 업데이트 결과를 받을 콜백입니다.

removeTags

사용자 태그를 제거합니다. 존재하지 않는 태그는 무시됩니다.

파라미터타입기본값설명
tagsvararg String필수제거할 태그입니다.
• null이나 빈 문자열, 혹은 이를 포함하는 리스트는 허용하지 않습니다.
callback@Nullable UserUpdateCallbacknull유저 업데이트 결과를 받을 콜백입니다.

setPage

track() 할 때 표시되는 페이지를 설정합니다. 기본적으로는 액티비티 이름으로 표시되나, 예를 들어 Navigation Component를 사용하는 등 Single Activity Architecture를 차용한 경우 액티비티 이름을 표시하는 것이 사용자 이벤트를 추적하는 데 유용하지 않을 수 있습니다. 이 경우 setPage()를 통해 이벤트 추적에 도움을 줄 수 있습니다. setPage() 이후에 호출되는 track()에 기록되는 이벤트에 페이지가 반영됩니다. 이전의 이벤트에는 영향을 주지 않습니다.

🚧

setPage(null)resetPage()는 동작이 다릅니다. setPage(null)은 페이지를 null로 설정합니다.

파라미터타입기본값설명
page@Nullable Stringnull이벤트에 표시될 페이지입니다. 페이지를 null로 설정하면 이벤트의 페이지가 null로 설정됩니다. 액티비티 이름을 페이지로 기록하고 싶다면 resetPage()를 참고합니다.
profileNullable Map<String, Object>null유저챗 프로필 값.

- profile 객체 내부의 특정 필드에 nil을 전달할 경우, 해당 필드의 값은 제거되어 적용 됩니다.
- 설정된 유저챗 프로필은 유저챗이 생성될 때 적용됩니다.

resetPage

setPage()로 설정된 페이지 정보를 해제합니다. 다음에 기록되는 이벤트부터 액티비티 이름을 페이지 정보로 설정합니다.

hidePopup

표시되고 있는 팝업을 숨깁니다.

initPushToken

Firebase Cloud Messaging(FCM)에 사용할 토큰이 변경되었음을 알립니다.

파라미터타입기본값설명
token@Nullable String필수FCM 토큰입니다.

isChannelPushNotification

채널톡 SDK가 처리해야 하는 푸시 데이터인지 확인합니다.

파라미터타입기본값설명
payloadMap<String, String>필수FCM로부터 받은 푸시 데이터입니다. RemoteMessage#getData()로부터 전달 받은 객체를 그대로 전달합니다.

receivePushNotification

전달 받은 푸시 데이터를 이용해 사용자에게 시스템 알림을 표시하고 채널톡 서버에 유저가 알림을 받았음을 전달합니다.

파라미터타입기본값설명
context@NonNull Context필수안드로이드 Context 객체입니다.
payloadMap<String, String>필수FCM로부터 받은 푸시 데이터입니다. RemoteMessage.getData()로부터 전달 받은 객체를 그대로 전달합니다.

hasStoredPushNotification

receivePushNotification()을 통해서 전달 받은 푸시 데이터가 있는지 확인합니다.

파라미터타입기본값설명
context@NonNull Activity필수액티비티 객체입니다.

openStoredPushNotification

receivePushNotification()을 통해서 전달 받은 푸시 데이터를 이용해 해당하는 채팅방을 엽니다. 사용자가 시스템 푸시를 클릭했을 때 가장 처음 보는 화면에서 호출하는 것을 권장합니다.

isBooted

가장 마지막 boot()가 성공했고 shutdown()이 호출되지 않았음을 확인합니다.

setDebugMode

디버그 모드를 켭니다. 로그 메시지가 표시됩니다.

파라미터타입기본값설명
flagboolean필수디버그 플래그입니다.

setAppearance

SDK의 테마를 설정합니다.

파라미터타입기본값설명
appearanceAppearance필수• LIGHT: 밝은 테마입니다.
• DARK: 어두운 테마입니다.
• SYSTEM: 시스템 테마를 따라갑니다.