Freshchat 모바일 SDK는 사용자 행동 및 관련 메타 속성을 청취할 수 있도록 합니다.
이 기능은 다음 SDK 버전부터 사용할 수 있습니다,
- Android: 2.7.0+
- iOS: 2.7.0+
플랫폼에 따라, 다음과 같이 사용자 이벤트를 청취할 수 있습니다.
Android
사용자 이벤트 등록
Application 클래스의 onCreate에서 이를 등록하는 것을 권장합니다.
IntentFilter userActionsIntentFilter = new IntentFilter(Freshchat.FRESHCHAT_EVENTS);
getLocalBroadcastManager().registerReceiver(receiver, userActionsIntentFilter);
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent == null || intent.getExtras() == null) {
return;
}
Event event = Freshchat.getEventFromBundle(intent.getExtras());
if (event != null) {
Log.d("Name", "Name : " + event.getEventName().getName());
Log.d("Prop", "Event Properties: " + event.getProperties());
}
}
};사용자 이벤트 등록 해제
Application 클래스의 onTerminate에서 등록 해제할 수 있습니다.
getLocalBroadcastManager().unregisterReceiver(receiver);iOS
Objective C
사용자 이벤트 등록
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(userActionEvent:)
name:FRESHCHAT_EVENTS
object:nil];
- (void) userActionEvent:(NSNotification *)notif {
FreshchatEvent *fcEvent = notif.userInfo[@"event"];
// Check with available event enum
if (fcEvent.name == FCEventFAQOpen){
// Log existing event meta / properties
NSLog(@"Event properties - %@",fcEvent.properties);
}
}사용자 이벤트 등록 해제
[[NSNotificationCenter defaultCenter]removeObserver: FRESHCHAT_EVENTS];Swift
사용자 이벤트 등록
NotificationCenter.default.addObserver(self,selector: #selector(userActionEvent(_:)),name: NSNotification.Name(rawValue: FRESHCHAT_EVENTS),object: nil)
func userActionEvent(_ notification: Notification)
{
var fcEvent : FreshchatEvent? = nil
fcEvent = (notification.userInfo?["event"] as? FreshchatEvent)
//Check with available event enum
if fcEvent?.name == FCEventFAQOpen {
//Log existing event meta / properties
print ("Event properties - \(String(describing: fcEvent?.properties))")
}
}사용자 이벤트 등록 해제
NotificationCenter.default.removeObserver(FRESHCHAT_EVENTS)지원되는 이벤트
이벤트 이름 | 설명 |
FCEventFAQCategoryListOpen | FAQ 카테고리 목록이 열릴 때 |
| FCEventFAQListOpen | FAQ 목록이 열릴 때 |
| FCEventFAQOpen | FAQ가 열릴 때 |
| FCEventFAQSearch | 검색 결과에서 FAQ가 선택되거나 검색 결과가 취소될 때 |
| FCEventFAQVote | FAQ에 투표할 때 |
| FCEventChannelListOpen | 주제 목록이 열릴 때 |
| FCEventMessageSent | 사용자 메시지가 전송될 때 |
| FCEventConversationOpen | 주제가 열릴 때 |
| FCEventCsatOpen | CSAT가 사용자에게 표시될 때 |
| FCEventCsatSubmit | 사용자가 CSAT에 응답할 때 |
| FCEventCsatExpiry | CSAT가 만료되어 사용자에게 표시되지 않을 때 |
| FCEventLinkTap | 사용자가 외부 링크를 클릭할 때 |
| FCEventScreenView | Freshchat SDK 화면이 사용자에게 표시될 때 |
| FCEventMessageReceive | 사용자가 메시지를 받을 때 |
| FCEventNotificationReceive | 사용자가 Freshchat 알림을 받을 때 |
| FCEventIdTokenStatusChange | 사용자의 JWT 토큰 상태가 변경될 때 |
| FCEventDropDownShow | 드롭다운 메시지가 사용자에게 표시될 때 |
| FCEventDropDownOptionSelect | 사용자가 드롭다운 옵션을 선택할 때 |
| FCEventCarouselShow | 캐러셀 메시지가 사용자에게 표시될 때 |
| FCEventCarouselOptionSelect | 사용자가 캐러셀 옵션을 선택할 때 |
| FCEventCarouselOptionView | 사용자가 캐러셀 보기 버튼을 클릭할 때 |
| FCEventCalendarFindTimeSlotClick | 사용자가 시간 슬롯 찾기 버튼을 클릭할 때 |
| FCEventCalendarInviteCancel | 사용자가 회의 초대를 취소할 때 |
| FCEventCalendarNoTimeSlotFound | 사용 가능한 회의 초대가 없을 때 |
| FCEventCalendarBookingSuccess | 사용자가 성공적으로 회의를 예약할 때 |
| FCEventCalendarBookingRetry | 사용자가 회의 예약을 다시 시도할 때 |
| FCEventCalendarBookingFailure | 사용자 회의 예약이 실패할 때 |
| FCEventShowOriginalClick | 사용자가 상담원의 원본 메시지를 보기 위해 실시간 번역 토글 버튼을 클릭할 때 |
| FCEventHideOriginalClick | 사용자가 상담원의 원본 메시지를 숨기기 위해 실시간 번역 토글 버튼을 클릭할 때 |