TemplateView 에서 버튼클릭이나 상태 변경이 일어나면 이를 응용레벨에 알려 처리되도록 해야 합니다. 마찬가지로 응용레벨에서 display에 필요한 상태변경이나 명령이 발생하면 TemplateView에 알려 갱신 처리를 해야 합니다. 이와 같은 TemplateView와 응용레벨에서의 상호작용은 TemplateHandler인터페이스를 통해 이루어집니다.
TemplateHandler는 TemplateHandlerFactory에서 생성합니다.
특정 상호작용을 제한하거나 동작 변경이 필요하다면 SDK의 기본 Handler인 BasicTemplateHandler를 상속 후 필요한 메서드를 override 하여 커스텀 TemplateHandler를 작성하고, 이를 TemplateHandlerFactory에 의해 생성되도록 적용하면 됩니다.
TemplateHandler
TemplateView (이하 View로 표기) 는 버튼이 클릭되거나, 보여지는 item list에 변화가 생길때 이를 응용레벨로 알려 처리되도록 합니다. 또한 Toast나 Activity의 노출을 요청할 수도 있습니다.
각 상황에 호출되는 메서드들은 아래와 같습니다.
Methods
fun onElementSelected(tokenId: String) View내 버튼 클릭시 호출된다.
fun onChipSelected(text: String) View내 chip(추천 명령어) 클릭시 호출된다.
fun onCloseClicked() View내 닫기 버튼 클릭시 호출된다.
fun onCloseAllClicked() View내 홈 버튼 클릭시 호출된다. SDK에서는 노출중인 모든 템플릿을 종료한다.
fun onNuguButtonSelected() View내 누구 버튼 (아리아 호출) 클릭시 호출된다.
fun onPlayerCommand(command: String, param: String = "") 미디어 재생 관련 동작이 필요할때 호출된다. (ex. View내 재생/일시정지 버튼 클릭)