Implementar bate-papo virtual e Atendente
O Mobile SDK permite que você implemente facilmente os serviços de bate-papo Virtual e Atendente em seu aplicativo iOS.
Você usa a API NowChatService para criar a interface do usuário do bate-papo. Depois que a IU for criada, você deverá iniciar a sessão de bate-papo e iniciar o serviço de bate-papo. Semelhante a outros serviços do recurso Mobile SDK, a API NowChatService fornece duas implementações para alguns de seus métodos, incluindo o método startChat(). Uma implementação retorna um publicador Combine e a outra chama um manipulador de conclusão com os resultados de retorno.
A seguir está um snippet da aplicação de exemplo que mostra como inicializar e iniciar uma IU e uma sessão de bate-papo.
// Create the chat UI
func makeChatScreen() -> UIViewController? {
guard let chatService = chatService else { return nil }
let result = chatService.makeChatUI(theme: CarrascoChatTheme(baseTheme: CarrascoTheme()))
switch result {
case .success(let chatViewController):
return chatViewController
case .failure(let error):
debugPrint("Chat screen creation failed with error: \(error)")
return nil
}
}
// Start the chat session
func startChat() {
guard let chatService = chatService else {
debugPrint("Chat service is invalid")
viewState = makeViewState()
return
}
chatService.startChat { [weak self] result in
if case .failure(let error) = result {
debugPrint("Chat session initialization failed with error: \(error)")
self?.resetChat()
}
}
}
// Initialize the chat service
private func initializeChatService() {
NowChat.makeChatService(instanceUrl: instanceUrl, delegate: self) { [weak self] result in
guard let self = self else { return }
switch result {
case .success(let service):
self.chatService = service
case .failure(let error):
debugPrint("Creating the chat service failed with error: \(error)")
}
self.viewState = self.makeViewState()
}
}Antes de aproveitar a funcionalidade de bate-papo em sua aplicação, você deve configurar Virtual Agent em sua instância ServiceNow. Para obter detalhes, consulte Virtual Agent.
Passando variáveis de contexto para o bate-papo Atendente e Virtual Agent
Você pode passar variáveis de contexto de bate-papo ao iniciar uma sessão de bate-papo passando o parâmetro contextData ] nas funções NowChatService - startChat(contextData: [Cadeia de caracteres: Qualquer]?) ou NowChatService - startChat(contextData: [Cadeia de caracteres: Qualquer]? = nil, _ conclusão: @escaping (Resultado<Void, NowChatServiceError> )). Para obter informações adicionais sobre variáveis de contexto de bate-papo, consulte Live agent chat context variables.
func startChat() {
guard let chatService = chatService else {
debugPrint("Chat service is invalid")
viewState = makeViewState()
return
}
let contextData = ["sys_id": "123456789", "table_name": "wm_task", "active": true] as [String: Any]
chatService.startChat(contextData: contextData) { [weak self] result in
if case .failure(let error) = result {
debugPrint("Chat session initialization failed with error: \(error)")
self?.resetChat()
}
}
}Tema da interface do usuário do bate-papo
Você pode personalizar as cores da IU de bate-papo Atendente e Virtual Agent passando um objeto de tema na chamada makeChatUI(). Para obter uma lista de todos os elementos que você pode personalizar, consulte Protocolo NowChatColoring - iOS. Por padrão, a IU de bate-papo usa o tema NowUIColor para todos os elementos de IU do NowSDK. Consulte Protocolo NowChatThemeable - iOS para obter exemplos de snippets de código sobre como aplicar um tema à IU de bate-papo.