이 문서는 채널톡 iOS SDK(이하 SDK)의 delegate에 대해서 설명합니다.
delegate
는 SDK에서 발생하는 이벤트 알림을 받아볼 수 있도록 합니다.
이를 위해 ChannelPluginDelegate
를 채택한 클래스에게 delegate를 위임해야 합니다. 예시는 다음과 같습니다.
class ViewController: ChannelPluginDelegate {
override func viewDidLoad() {
...
ChannelIO.delegate = self
...
}
}
[ChannelIO setDelegate:self];
onShowMessenger
메신저 화면을 여는 이벤트에 대한 딜리게이트 메소드입니다. 아래의 경우에 호출됩니다.
showMessenger
를 호출한 경우openChat
을 호출한 경우- 유저가 채널 버튼를 눌러 메신저를 연 경우
class ViewController: ChannelPluginDelegate {
func onShowMessenger() {
...
}
}
- (void)onShowMessenger {
}
onHideMessenger
메신저 화면을 닫는 이벤트에 대한 딜리게이트 메소드입니다. 아래의 경우에 호출됩니다.
hideMessenger
를 호출한 경우sleep
을 호출한 경우shutdown
을 호출한 경우- 유저가 명시적으로 메신저 화면을 닫는 경우
class ViewController: ChannelPluginDelegate {
func onHideMessenger() {
...
}
}
- (void)onHideMessenger {
}
onChatCreated
새 유저챗이 생성되는 이벤트에 대한 딜리게이트 메소드 입니다. 아래의 경우에 호출됩니다.
- 유저의 명시적인 새 채팅 생성
chatId = nil
인openChat
class ViewController: ChannelPluginDelegate {
func onChatCreated(chatId: String) {
...
}
}
- (void)onChatCreatedWithChatId:(NSString *)chatId {
}
onBadgeChanged(count: Int) Deprecated
Deprecated
onBadgeChanged(unread: Int, alert: Int)를 사용해 주세요.
유저의 뱃지 개수 변경에 대한 딜리게이트 메소드입니다. 뱃지 갯수가 변경되거나, 부트하는 경우에 호출됩니다.
class ViewController: ChannelPluginDelegate {
func onBadgeChanged(alert: Int) {
...
}
}
- (void)onBadgeChangedWithAlert:(NSInteger)alert {
}
onBadgeChanged(unread: Int, alert: Int)
유저의 읽지 않은 알림 갯수에 대한 딜리게이트 메소드입니다. 알림 갯수가 변경되거나, 부트하는 경우에 호출됩니다.
- alert : 유저가 읽지 않은 중요 알림 갯수입니다. 채널 버튼에서 숫자로 알림이 표현됩니다.
- unread : 유저가 읽지 않은 모든 알림 갯수입니다. alert 메시지의 수를 포함합니다. 채널 버튼에서 빨간 점으로 알림이 표현됩니다.
class ViewController: ChannelPluginDelegate {
func onBadgeChanged(unread: Int, alert: Int) {
...
}
}
- (void)onBadgeChangedWithUnread:(NSInteger)unread alert:(NSInteger)alert {
}
onFollowUpChanged
유저에 의해 팔로업 정보가 수정되는 경우에 호출됩니다.
ChannelIO.updateUser
에 의해서는 호출되지 않습니다. 딕셔너리의 값은 nullable 합니다.
class ViewController: ChannelPluginDelegate {
func onFollowUpChanged(data: [String : Any]) {
...
}
}
- (void)onFollowUpChangedWithData:(NSDictionary<NSString *,id> *)data {
}
onUrlClicked
유저가 채팅 안에서 링크를 누르거나, 링크 버튼을 누르는 경우에 호출됩니다.
해당 함수가 true
를 반환하는 경우, SDK에서 수행하는 URL 리다이렉트는 동작하지 않습니다.
class ViewController: ChannelPluginDelegate {
func onUrlClicked(url: URL) -> Bool {
...
}
}
- (BOOL)onUrlClickedWithUrl:(NSURL *)url {
// SDK do not action when return true
return YES;
}
onPopupDataReceived
인앱 메시지 팝업이 불리는 경우에 대한 알림입니다.
매니저로부터 메시지가 도착하거나, 마케팅 메시지가 도착하는 경우에 호출됩니다.
이 함수의 파라미터 event에 대한 자세한 정보는 PopupData
문서를 참고합니다.
class ViewController: ChannelPluginDelegate {
func onPopupDataReceived(event: PopupData) {
...
}
}
- (void)onPopupDataReceivedWithEvent:(PopupData *)event {
}