Classe NowChatService - Android

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 2 min. de leitura
  • A classe NowChatService fornece funções que permitem iniciar a atividade NowChat e definir configurações de erro.

    NowChatService - launchIntent(context:Context, temaColors:NowChatTheme):Intenção

    Inicia a intenção usada para abrir a atividade do NowChat. Normalmente usado para criar um [android.app.PENDINGIntent].

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    contexto Contexto Contexto usado para criar a intenção.
    coresdo tema Tema do NowChat Opcional. Cores do tema a serem usadas na IU do NowChat.

    Padrão: cores padrão

    Tabela 2. Retornos
    Tipo Descrição
    Intenção Cores de intenção e tema usadas para iniciar a atividade do NowChat associada.

    Este exemplo mostra como chamar o método launchIntent() e processar a atividade de devolução.

    val intent = nowChatService.launchIntent(this) 
    val pendingIntent = PendingIntent.getActivity( 
        this, 
        REQUEST_CODE,
        intent,
        PendingIntent.FLAG_IMMUTABLE 
    ) 
    
    val notification = createNotification(title, message, pendingIntent)
    notificationManager.notify(push.notificationId, notification) 

    NowChatService - start(activity: Activity,meColors: NowChatTheme = objeto: NowChatTheme{}, contextData: Map<String, Any> = mapOf(), chatConfiguration: NowChatConfiguration? = nulo)

    Inicia a atividade do NowChat especificada.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    atividade Atividade Contexto de atividades a ser usado para iniciar a atividade do NowChat e para receber o NowChatExitCode como um resultCode por meio do onActivityResult.
    coresdo tema Tema do NowChat Opcional. Cores do tema a serem usadas na IU do NowChat.

    Padrão: cores padrão

    Dadoscontexto Mapa<String, Any> Opcional. Variáveis de contexto de bate-papo adicionais a serem passadas para a sessão de bate-papo.

    Para obter informações adicionais sobre variáveis de contexto de bate-papo, consulte Live agent chat context variables.

    chatConfiguration NowChatConfiguration Opcional. Configuração de bate-papo a ser aplicada ao usar o NowChat.
    Tabela 4. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar esta função.

    suspend fun launchChat() { 
      val chatService = getNowChatService() 
    
      val chatTheme = object : NowChatTheme { 
        override val brand: NowUIAdaptiveColor 
          get() = NowUIAdaptiveColor(Color.BLUE) 
     
        override val textPrimary: NowUIAdaptiveColor 
          get() = NowUIAdaptiveColor(Color.BLACK) 
     
        // Override remaining theme colors 
     
      }
      val contextData = mapOf("sys_id" to "123456789", "table" to "wm_task") 
     
      //drawable to be used instead of the default NowChat back button. 
      val myDrawable = ContextCompat.getDrawable(activity, R.drawable.my_drawable) 
     
      val chatConfiguration = NowChatConfiguration( 
        closePrompt = NowChatConfiguration.ClosePrompt( 
          header = null, 
          message = "Are you sure you want to leave?", 
          acceptButtonTitle = "Yes", 
          declineButtonTitle = "No" 
        ),
        disabledFeatures = listOf(NowChatConfiguration.Feature.START_NEW_CONVERSATION), 
        conversationOptions = listOf(NowChatConfiguration.ConversationOption.FORCE_NEW_CONVERSATION), 
        uiConfiguration = NowChatConfiguration.UIConfiguration( 
          closeButton = NowChatConfiguration.CloseButton( 
            icon = myDrawable 
          ),
          attachmentUploadButton = NowChatConfiguration.AttachmentUploadButton(isVisible = false) 
        )
      )
     
      chatService?.start(activity, chatTheme, contextData, chatConfiguration) 
    } 

    NowChatService -SubscribeToUnreadMessageCount(pollingInterval: Long, ouvinte: NowChatUnreadMessagesCountListener)

    Assina o ouvinte da contagem de mensagens de bate-papo não lidas.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Intervalo de pesquisa Longo Frequência na qual pesquisar o serviço Web para a contagem de mensagens de bate-papo não lidas.

    Unidade: Milissegundos

    listener NowChatUnreadMessagesCountListener Ouvinte que você implementa para obter o número de mensagens de bate-papo não lidas. Você também deve cancelar a assinatura deste ouvinte quando não quiser mais obter a contagem de mensagens não lidas usando o método NowChatService - unsubscribeFromUnreadMessageCount (ouvinte: NowChatUnreadMessagesCountListener).
    Tabela 6. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como assinar e cancelar a assinatura de um ouvinte de contagem de mensagens não lidas de bate-papo.

    private val unreadMessageCountListener = object: NowChatUnreadMessagesCountListener {
      override fun unreadMessagesCountDidChange(unreadMessageCount: Int) {
      }
    }
    
    fun setup() {
      nowChatService.subscribeToUnreadMessageCount(pollingInterval:1000, unreadMessageCountListener)
    }
    
    fun teardown() {
      nowChatService.unsubscribeFromUnreadMessageCount(unreadMessageCountListener)
    }
    

    NowChatService - unsubscribeFromUnreadMessageCount (ouvinte: NowChatUnreadMessagesCountListener)

    Cancela a assinatura de recebimento da contagem de mensagens não lidas.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    listener NowChatUnreadMessagesCountListener Ouvinte que você implementa para cancelar a assinatura do ouvinte da contagem de mensagens não lidas do bate-papo.
    Tabela 8. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo a seguir mostra como assinar e cancelar a assinatura de um ouvinte de contagem de mensagens não lidas de bate-papo.

    private val unreadMessageCountListener = object: NowChatUnreadMessagesCountListener {
      override fun unreadMessagesCountDidChange(unreadMessageCount: Int) {
      }
    }
    
    fun setup() {
      nowChatService.subscribeToUnreadMessageCount(pollingInterval:1000, unreadMessageCountListener)
    }
    
    fun teardown() {
      nowChatService.unsubscribeFromUnreadMessageCount(unreadMessageCountListener)
    }