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
유저챗을 열어 특정 서포트봇을 실행합니다.
매개변수 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
activity | @NonNull Activity | 필수 | 액티비티 객체입니다. |
supportBotId | @Nullable String | 필수 | 서포트봇의 ID 입니다. supportBotId 가 유효하지 않거나, null 인 경우 채팅방을 닫습니다. |
message | @Nullable String | 필수 | supportBotId 가 유효할 때 입력창에 미리 채워져있는 메시지입니다. |
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() 를 참고합니다. |
resetPage
setPage()
로 설정된 페이지 정보를 해제합니다. 다음에 기록되는 이벤트부터 액티비티 이름을 페이지 정보로 설정합니다.
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: 시스템 테마를 따라갑니다. |