es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

jQuery o JS para precargar y enviar un campo de texto después de que se haya cargado dinámicamente un campo de entrada generado.

Mi objetivo es activar un flujo de chat específico dentro del servicio Microsoft Power Virtual Agent en función de la página en la que se encuentre el usuario. No he encontrado una manera de personalizar el servicio de Microsoft para comenzar dinámicamente en un tema de chat específico que no sea uno fijo utilizando estas instrucciones.

Quiero usar jQuery para prellenar el campo de texto generado dinámicamente:

$ ('. webchat__send-box-text-box__input'). val ('red');

El código anterior funciona donde veo la palabra “red” aparecer en el cuadro de texto brevemente, pero luego es sobrescrito por el código que genera el campo de entrada. Si ejecuto el script anterior manualmente desde la consola del navegador después de que todo se haya cargado, funciona bien.

¿Hay alguna manera de personalizar el código de Microsoft webchat para llevar al usuario al inicio de un flujo específico, o alternativamente puedo automatizar la inserción de las palabras correctas para que el usuario sea llevado automáticamente al inicio del flujo de chat relevante? Sería genial si pudiera establecer un parámetro en el código JS webchat que estableciera un tema desde el principio, pero no he encontrado ninguna instrucción que sugiera que esto sea posible, solo algunos parámetros de estilo básicos.

Este es el código de Microsoft que genera una interfaz de chat web:

<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"> </ script>
  <script>
        const styleOptions = {
           // Agregar styleOptions para personalizar la lona de chat web
           hideUploadButton: true
        };

        // Agregue su ID DE BOT a continuación
        var BOT_ID = "[ID DE BOT OMITIDO]";

        var theURL = "https://powerva.microsoft.com/api/botmanagement/v1/directline/directlinetoken?botId=" + BOT_ID;
        const store = window.WebChat.createStore(
           {},
           ({ dispatch }) => next => action => {
               if (action.type === "DIRECT_LINE/CONNECT_FULFILLED") {
                  dispatch({
                      meta: {
                           method: "keyboard",
                       },
                       payload: {
                           activity: {
                                 channelData: {
                                      postBack: true,
                                 },
                                  // Web Chat mostrará el mensaje del Tema del Sistema de & # 39; Saludo & # 39; 
                                  //que tiene una frase de disparo 'hola'
                                  name: 'startConversation',
                                  type: "event"
                             },
                        },
                        type: "DIRECT_LINE/POST_ACTIVITY",
                   });
             }
             return next(action);
          }
       );
       fetch (theURL)
            .then(response => response.json())
            .then(conversationInfo => {
                window.WebChat.renderWebChat(
                    {
                        directLine: window.WebChat.createDirectLine({
                            token: conversationInfo.token,
                        }),
                        store: store,
                        styleOptions: styleOptions
                    },
                    document.getElementById('webchat');
                );
            })
            .catch(err => console.error("Ocurrió un error: " + err));
    </script>
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, basado en el código y la información proporcionados, no parece haber una manera integrada de activar un flujo de chat específico dentro del servicio Microsoft Power Virtual Agent basado en la página en la que se encuentre el usuario. Además, tampoco parece haber una manera de personalizar la interfaz de chat web para iniciar en un tema de chat específico al establecer un parámetro en el código JavaScript de chat web.

    En cuanto a prellenar el campo de texto generado dinámicamente utilizando jQuery, el código proporcionado ($('webchat__send-box-text-box__input').val('red');) parece ser correcto. Sin embargo, parece que el texto está siendo sobreescrito por el código que genera el campo de entrada. Una solución posible podría ser utilizar una función setTimeOut para retrasar el código de prellenado hasta que haya terminado de ejecutarse el código que genera el campo de entrada. Por ejemplo:

    setTimeout(function() {
      $('webchat__send-box-text-box__input').val('red');
    }, 1000); // Retraso de 1 segundo (ajustar según sea necesario)
    

    Esto esperará 1 segundo antes de prellenar el campo de entrada con la palabra “red”. Sin embargo, esta solución puede no ser infalible ya que depende de un retraso fijo y aún puede ser sobreescrito si el código que genera el campo de entrada tarda más en ejecutarse.

    Alternativamente, otra solución posible podría ser escuchar un evento específico o activador dentro de la interfaz de chat web y luego utilizar JavaScript/jQuery para insertar automáticamente las palabras correctas para guiar al usuario al inicio del flujo de chat relevante. Sin embargo, esto requeriría una investigación adicional y puede no ser posible dependiendo del flujo de chat específico y las capacidades de la interfaz de chat web.

Comments are closed.