initialize
ChannelIO
를 초기화 합니다. 다른 ChannelIO
의 메서드를 사용하기 전에 무조건 한 번 호출되어야 합니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
application | @NonNull Application | 필수 | Application 객체입니다. |
attachView | boolean | true | 모든 액티비티에 채널톡 버튼과 팝업을 표시할지 여부입니다. true인 경우 기본적으로 모든 액티비티에 채널톡 버튼과 팝업을 표시하지만, @SkipAttachChannelView 어노테이션을 액티비티에 사용할 경우 해당 액티비티에 부착되는 것을 막을 수 있습니다. false인 경우 채널톡 버튼과 팝업이 표시되지 않습니다. 이때 ChannelPluginListener 를 통해서 적절한 타이밍에 직접 UI를 표시할 수 있습니다. |
setListener
ChannelIO
에서 발생하는 이벤트를 받을 수 있도록 설정합니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
listener | @Nullable ChannelPluginListener | 필수 | 이벤트를 전달 받을 리스너 객체입니다. null을 전달하면 리스너가 제거됩니다. |
clearListener
setListener()
를 통해 설정된 리스너 객체를 제거합니다. setListener(null)
의 별칭입니다.
boot
메신저 표시, 상담 채팅 열기 등 채널과의 연결이 필요한 기능을 사용하기 위해서 SDK를 특정 채널에 연결합니다. 더 자세한 사항은 채널톡 사용하기를 참고합니다. boot()
완료 후에 해야 하는 작업은 bootCallback
파라미터를 사용합니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
bootConfig | @NonNull BootConfig | 필수 | 부트 설정입니다. 플러그인 키, 채널톡 버튼 위치 등을 설정합니다. |
bootCallback | @Nullable BootCallback | null | 부트 결과를 알 수 있는 콜백입니다. |
일부 기능을 사용하고 싶지 않거나 채널과의 연결을 끊고 싶은 경우 각각
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 | 필수 | 채팅방을 열 때 미리 채워져있는 메시지입니다. chatId 가 null 일 때만 효과가 있습니다. |
openSupportBot Deprecated
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
유저에게 태그를 추가합니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
tags | vararg String | 필수 | 추가할 태그입니다. • 추가할 수 있는 태그의 최대 개수는 10개입니다. • 태그는 소문자로 변환되어 저장됩니다. • 이미 추가된 태그는 무시됩니다. • null이나 빈 문자열, 혹은 이를 포함하는 리스트는 허용하지 않습니다. |
callback | @Nullable UserUpdateCallback | null | 유저 업데이트 결과를 받을 콜백입니다. |
removeTags
사용자 태그를 제거합니다. 존재하지 않는 태그는 무시됩니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
tags | vararg String | 필수 | 제거할 태그입니다. • null이나 빈 문자열, 혹은 이를 포함하는 리스트는 허용하지 않습니다. |
callback | @Nullable UserUpdateCallback | null | 유저 업데이트 결과를 받을 콜백입니다. |
setPage
track()
할 때 표시되는 페이지를 설정합니다. 기본적으로는 액티비티 이름으로 표시되나, 예를 들어 Navigation Component를 사용하는 등 Single Activity Architecture를 차용한 경우 액티비티 이름을 표시하는 것이 사용자 이벤트를 추적하는 데 유용하지 않을 수 있습니다. 이 경우 setPage()
를 통해 이벤트 추적에 도움을 줄 수 있습니다. setPage()
이후에 호출되는 track()
에 기록되는 이벤트에 페이지가 반영됩니다. 이전의 이벤트에는 영향을 주지 않습니다.
setPage(null)
와resetPage()
는 동작이 다릅니다.setPage(null)
은 페이지를null
로 설정합니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
page | @Nullable String | null | 이벤트에 표시될 페이지입니다. 페이지를 null 로 설정하면 이벤트의 페이지가 null 로 설정됩니다. 액티비티 이름을 페이지로 기록하고 싶다면 resetPage() 를 참고합니다. |
profile | Nullable Map<String, Object> | null | 유저챗 프로필 값. - profile 객체 내부의 특정 필드에 nil을 전달할 경우, 해당 필드의 값은 제거되어 적용 됩니다. - 설정된 유저챗 프로필은 유저챗이 생성될 때 적용됩니다. |
resetPage
setPage()
로 설정된 페이지 정보를 해제합니다. 다음에 기록되는 이벤트부터 액티비티 이름을 페이지 정보로 설정합니다.
hidePopup
표시되고 있는 팝업을 숨깁니다.
initPushToken
Firebase Cloud Messaging(FCM)에 사용할 토큰이 변경되었음을 알립니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
token | @Nullable String | 필수 | FCM 토큰입니다. |
isChannelPushNotification
채널톡 SDK가 처리해야 하는 푸시 데이터인지 확인합니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
payload | Map<String, String> | 필수 | FCM로부터 받은 푸시 데이터입니다. RemoteMessage#getData() 로부터 전달 받은 객체를 그대로 전달합니다. |
receivePushNotification
전달 받은 푸시 데이터를 이용해 사용자에게 시스템 알림을 표시하고 채널톡 서버에 유저가 알림을 받았음을 전달합니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
context | @NonNull Context | 필수 | 안드로이드 Context 객체입니다. |
payload | Map<String, String> | 필수 | FCM로부터 받은 푸시 데이터입니다. RemoteMessage.getData() 로부터 전달 받은 객체를 그대로 전달합니다. |
hasStoredPushNotification
receivePushNotification()
을 통해서 전달 받은 푸시 데이터가 있는지 확인합니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
context | @NonNull Activity | 필수 | 액티비티 객체입니다. |
openStoredPushNotification
receivePushNotification()
을 통해서 전달 받은 푸시 데이터를 이용해 해당하는 채팅방을 엽니다. 사용자가 시스템 푸시를 클릭했을 때 가장 처음 보는 화면에서 호출하는 것을 권장합니다.
isBooted
가장 마지막 boot()
가 성공했고 shutdown()
이 호출되지 않았음을 확인합니다.
setDebugMode
디버그 모드를 켭니다. 로그 메시지가 표시됩니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
flag | boolean | 필수 | 디버그 플래그입니다. |
setAppearance
SDK의 테마를 설정합니다.
파라미터 | 타입 | 기본값 | 설명 |
---|---|---|---|
appearance | Appearance | 필수 | • LIGHT: 밝은 테마입니다. • DARK: 어두운 테마입니다. • SYSTEM: 시스템 테마를 따라갑니다. |