ES3042513T3 - Method and system for calling/executing an action from an outside application within an existing open application - Google Patents
Method and system for calling/executing an action from an outside application within an existing open applicationInfo
- Publication number
- ES3042513T3 ES3042513T3 ES21804075T ES21804075T ES3042513T3 ES 3042513 T3 ES3042513 T3 ES 3042513T3 ES 21804075 T ES21804075 T ES 21804075T ES 21804075 T ES21804075 T ES 21804075T ES 3042513 T3 ES3042513 T3 ES 3042513T3
- Authority
- ES
- Spain
- Prior art keywords
- application
- window
- application window
- computer
- software application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
- Nitrogen And Oxygen Or Sulfur-Condensed Heterocyclic Ring Systems (AREA)
- Digital Computer Display Output (AREA)
Abstract
Se proporcionan sistemas y métodos para ejecutar una segunda aplicación dentro de la ventana de la aplicación principal, mejorando así la usabilidad de las interfaces gráficas de usuario (GUI). Un método ejemplar consiste en ejecutar una primera aplicación en la ventana de la aplicación principal. Esta ventana muestra varios elementos de la GUI asociados a la primera aplicación. La primera aplicación está configurada para ejecutar una segunda aplicación al procesar un evento invocado en la ventana de la aplicación principal. Posteriormente, la primera aplicación y la ventana de la aplicación principal se suspenden y se muestra una ventana de aplicación secundaria dentro de la ventana de la aplicación principal. Esta ventana muestra varios elementos de la GUI asociados a la segunda aplicación. La primera aplicación y la ventana de la aplicación principal se reanudan automáticamente tras cerrar la ventana de la aplicación secundaria. (Traducción automática con Google Translate, sin valor legal)
Description
[0001] DESCRIPCIÓN
[0003] Método y sistema para llamar/ejecutar acciones desde una aplicación externa dentro de una aplicación abierta existente
[0004] Referencia cruzada a solicitudes relacionadas
[0006] La presente solicitud reivindica prioridad de la solicitud de patente provisional estadounidense en tramitación con n.° de serie 63/022.703, presentada el 11 de mayo de 2020 y titulada "Method and System for Calling/Executing an Action From an Outside Application Within An Existing Open Application", y la solicitud de patente estadounidense con n.° de serie 17/215.620, presentada el 29 de marzo de 2021 y titulada "Method and System for Calling/Executing an Action From an Outside Application Within An Existing Open Application".
[0008] Campo técnico
[0010] Los sistemas y métodos divulgados en el presente documento se refieren, en general, a mejoras de software. En particular, estos sistemas y métodos mejoran la usabilidad de las interfaces gráficas de usuario (GUI, por sus siglas en inglés) al permitir la ejecución de otra aplicación dentro de la ventana principal de una aplicación y volver automáticamente a la aplicación principal una vez completada.
[0012] Antecedentes
[0014] Desde la innovación de los ordenadores y las interfaces de usuario, una de las principales dificultades en la adopción de la tecnología ha sido el diseño de interfaces y la capacitación de los operadores. Con la llegada de la era informática moderna, el diseño de ordenadores y software informático impregna todos los aspectos de nuestras vidas; sin embargo, el diseño de interfaces de aplicaciones continúa estando rezagado, lo que requiere una amplia capacitación y manuales de usuario. Hoy en día, los usuarios de las aplicaciones deben navegar o ser dirigidos a la sección correspondiente de una aplicación para realizar determinadas acciones.
[0016] Los principios divulgados en el presente documento eliminan este requisito y permiten a los desarrolladores de aplicaciones proporcionar una funcionalidad ilimitada para realizar cualquier acción desde cualquier página o sección de una aplicación, incluyendo la capacidad de realizar acciones desde una aplicación a otra sin salir de la aplicación actual.
[0017] Los principios divulgados en el presente documento se refieren a la técnica de un método para llamar y ejecutar acciones desde aplicaciones externas dentro de una aplicación abierta existente para realizar tareas, optimizando así la experiencia del usuario. El método comprende: (a) una aplicación en ejecución; (b) una pluralidad de acciones externas que pueden invocarse; (c) un método y estado de la aplicación capaces de invocar acciones externas; y (d) medios para invocar y ejecutar estas acciones externas sin abandonar el estado de la aplicación en ejecución.
[0019] En las aplicaciones actuales, como la gestión de relaciones con clientes (CRM, por sus siglas en inglés), para añadir un nuevo cliente, el usuario debe navegar hasta la sección correspondiente de la aplicación o buscar la acción que desea realizar, como añadir un nuevo cliente. Posteriormente, el usuario es dirigido o navega hasta la sección donde puede añadir el nuevo cliente.
[0021] Con los recientes avances en tecnología informática, los principios divulgados en el presente documento proporcionan a los operadores informáticos la capacidad de añadir nuevos clientes dentro de CRM desde cualquier lugar de la aplicación, sin salir del área actual de la misma. Por ejemplo, un operador informático que utilice CRM puede estar en el área de informes de la aplicación CRM, escribir "añadir nuevo cliente" en un cuadro de búsqueda y tener la capacidad de añadir un nuevo cliente sin salir del área de informes de CRM.
[0023] Por consiguiente, los principios divulgados en el presente documento pueden optimizar enormemente los flujos de trabajo de los operadores informáticos, reducir significativamente la necesidad de capacitación en aplicaciones y transformar radicalmente las posibilidades actuales de las interfaces de aplicaciones informáticas. Los principios divulgados en el presente documento son aplicables a diversos sectores y dispositivos. Algunos ejemplos son las pantallas y las interfaces de voz de automóviles, las plataformas de telefonía móvil, las aplicaciones informáticas y otros dispositivos informáticos.
[0024] El documento US 2018/0330333 A1 se refiere a un método para realizar acciones con respecto a los registros mantenidos por un sistema de base de datos desde el contexto de calendario de una aplicación de calendario. La aplicación de calendario comprende un menú desplegable que incluye varios tipos de acciones rápidas que se pueden realizar con respecto a un objeto de tarea seleccionado, que se muestra como elemento de calendario en la interfaz de usuario principal del calendario.
[0026] Sumario
[0028] Se proporcionan sistemas y métodos para ejecutar una aplicación secundaria dentro de una ventana de aplicación principal, mejorando así la usabilidad de las interfaces gráficas de usuario (GUI). Un método de ejemplo comprende la ejecución de una primera aplicación en la ventana de aplicación principal. La ventana de aplicación principal muestra una
pluralidad de elementos de la interfaz gráfica de usuario (GUI) asociados con la primera aplicación. La primera aplicación está configurada para ejecutar una segunda aplicación al procesar un evento invocado en la ventana de aplicación principal. Posteriormente, la primera aplicación y la ventana de aplicación principal se suspenden y se muestra una ventana de aplicación secundaria dentro de la ventana de aplicación principal. La segunda ventana de aplicación muestra una pluralidad de elementos de GUI asociados con la aplicación secundaria. La primera aplicación y la ventana de aplicación principal se reanudan automáticamente después de cerrar la ventana de aplicación secundaria.
[0030] De acuerdo con otro aspecto de los principios divulgados en el presente documento, se describe un mecanismo de entrada (entrada de búsqueda de texto, botones, enlaces, interfaces de programación de aplicaciones (API) de voz, API web) para buscar eventos coincidentes. Más allá de los eventos coincidentes, el mecanismo de entrada también puede buscar simultáneamente en múltiples tipos de campos, como clientes, artículos, etc. Los eventos coincidentes pueden comprender frases predefinidas, frases modificables por el usuario y frases mejoradas por inteligencia artificial (IA) basándose en la actividad del usuario.
[0032] De acuerdo con otro aspecto de los principios divulgados en el presente documento, se describe un mecanismo de escucha para identificar eventos coincidentes en el contexto de la entrada de búsqueda de texto, la llamada a una API de voz o la llamada a una API web. Cuando el mecanismo de escucha identifica una acción rápida coincidente, se devuelve el enlace de acción rápida para su transmisión a través de un método de aplicación basado en etiquetas, clases o atributos de elementos identificables.
[0034] De acuerdo con otro aspecto adicional de los principios divulgados en el presente documento, un método de aplicación basado en etiquetas, clases o atributos de elementos identificables permite abrir ventanas dentro de la aplicación que se está ejecutando en ese momento. El método de aplicación también pasa una función de devolución de llamada al método de la aplicación, lo que permite mantener el estado original de la aplicación en ejecución al concluir la acción rápida.
[0035] De acuerdo con otro aspecto de los principios divulgados en el presente documento, una aplicación de secuencias de comandos que se ejecuta dentro de la aplicación en ejecución, tal como JavaScript, proporciona la capacidad de llamar y ejecutar un método de aplicación dentro de la aplicación en ejecución. Los principios divulgados en el presente documento también proporcionan la capacidad de llamar y ejecutar el método de la aplicación dentro de la aplicación de secuencias de comandos.
[0037] De acuerdo con otro aspecto de los principios divulgados en el presente documento, se proporciona soporte para ejecutar acciones dentro de un modal o ventana de la aplicación en ejecución, como mostrar formularios, añadir eventos a formularios y añadir botones o acciones de eventos específicos.
[0039] Uno o más aspectos de los principios divulgados en el presente documento permiten la interacción y entrada del usuario para acciones rápidas dentro de un modal o ventana de la aplicación en ejecución.
[0041] Otros aspectos de los principios divulgados en el presente documento proporcionan soporte a los usuarios para registrar eventos para la ejecución de acciones rápidas llamadas y, tras la ejecución del evento registrado, llamar a los métodos específicos de la aplicación y devolver la función de devolución de llamada original a la aplicación de secuencias de comandos que reside dentro de la aplicación en ejecución.
[0043] Otros beneficios y ventajas resultarán evidentes para los expertos en la materia tras la lectura y comprensión de la siguiente especificación detallada.
[0045] Breve descripción de los dibujos
[0047] La descripción detallada hace referencia a las figuras adjuntas, en donde:
[0049] la FIG. 1 ilustra una interfaz gráfica de usuario (GUI) del estado de la técnica a modo de ejemplo;
[0050] la FIG. 2 ilustra un ejemplo de diagrama de bloques de un sistema informático de acuerdo con los principios divulgados en el presente documento;
[0051] la FIG. 3 ilustra un ejemplo de diagrama de bloques de componentes de una aplicación de acuerdo con los principios divulgados en el presente documento;
[0052] la FIG. 4A ilustra un diagrama de flujo que representa un proceso a modo de ejemplo de acuerdo con los principios divulgados en el presente documento;
[0053] la FIG. 4B ilustra un diagrama de flujo que representa un proceso a modo de ejemplo de acuerdo con los principios divulgados en el presente documento;
[0054] la FIG. 4C ilustra un diagrama de flujo que representa un proceso a modo de ejemplo de acuerdo con los principios divulgados en el presente documento;
[0055] la FIG. 5A ilustra un ejemplo de método de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento;
[0056] la FIG. 5B ilustra un ejemplo de método de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento;
[0057] la FIG. 5C ilustra un ejemplo de método de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento;
[0058] la FIG. 6A ilustra un ejemplo de método de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento;
[0059] la FIG. 6B ilustra un ejemplo de método de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento;
[0060] la FIG. 7A ilustra un ejemplo de método de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento;
[0061] la FIG. 7B ilustra un ejemplo de método de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento;
[0062] la FIG. 8 ilustra un diagrama de bloques de un sistema de interfaz de automóvil de acuerdo con los principios divulgados en el presente documento;
[0063] la FIG. 9A ilustra un ejemplo de método de uso de acciones rápidas para mejorar la usabilidad de GUI de un sistema de interfaz de automóvil de acuerdo con los principios divulgados en el presente documento; y
[0064] la FIG. 9B ilustra un ejemplo de método de uso de acciones rápidas para mejorar la usabilidad de GUI de un sistema de interfaz de automóvil de acuerdo con los principios divulgados en el presente documento.
[0066] Las figuras solo tienen por objeto facilitar la descripción de los principios divulgados en el presente documento. Las figuras no ilustran todos los aspectos de los principios divulgados en el presente documento ni limitan su alcance. Otros objetos, características y funciones resultarán evidentes a partir del examen de la siguiente descripción detallada.
[0068] Descripción detallada
[0070] En el presente documento se divulga una ilustración detallada. Sin embargo, las técnicas, métodos, procesos, sistemas y estructuras operativas basados en los principios divulgados en el presente documento pueden implementarse en una amplia variedad de formas y modos, algunos de los cuales pueden diferir bastante de los aquí descritos. Por consiguiente, los detalles estructurales y funcionales específicos divulgados son meramente representativos.
[0072] Los diagramas de flujo y los diagramas de bloques descritos en las figuras a continuación ilustran posibles arquitecturas, funcionalidades y operaciones de implementaciones de sistemas, métodos y programas informáticos de acuerdo con diversas realizaciones de los principios divulgados en el presente documento. A este respecto, cada bloque dentro de un diagrama de flujo o un diagrama de bloques puede representar un módulo, segmento o porción de código que comprende una o más instrucciones ejecutables para implementar las funciones locales especificadas. En algunas realizaciones alternativas, las funciones indicadas en un bloque pueden no producirse en el orden indicado en las figuras. Por ejemplo, dos bloques que se muestran consecutivamente pueden, de hecho, ejecutarse sustancialmente de forma simultánea, o en ocasiones, ejecutarse en orden inverso, dependiendo de las funcionalidades implicadas. Además, cada bloque de los diagramas de bloques y/o diagramas de flujo, y sus combinaciones, pueden implementarse mediante sistemas basados en hardware de propósito específico que realizan las funciones o acciones especificadas, o mediante combinaciones de hardware de propósito específico e instrucciones informáticas.
[0074] La FIG. 1 ilustra los problemas asociados con los sistemas GUI actuales, donde los usuarios de aplicaciones web de gestión de relaciones con los clientes (CRM) deben navegar por varias ventanas de aplicaciones independientes para realizar acciones. Algunos ejemplos de Cr M incluyen, entre otros, ZOHO CRM, SUGAR Cr M, SALESFo Rc E, HUBSPOT y MICROSOFT DYNAMICS 365.
[0076] La ventana 102 se muestra en el terminal de usuario que ejecuta una aplicación web. El terminal de usuario se comunica con un servidor a través de una red. Tal como se muestra en la FIG. 1, la ventana 102 comprende varios elementos de GUI, incluyendo un área de barra lateral 104, un área de encabezado superior 106, un área principal 108 y un área de pie de página 110. Debido a la complejidad de las aplicaciones web CRM, persisten diversos problemas de usabilidad con los sistemas y métodos conocidos implementados por ordenador. Por ejemplo, los usuarios deben aprender los detalles asociados a la interfaz de usuario de la aplicación web de CRM antes de poder utilizar de forma eficiente sus diversas funcionalidades y acceder a la información.
[0078] En este ejemplo, el área de encabezado superior 106 comprende un menú de navegación superior 112, que comprende una pluralidad de enlaces URL (localizador uniforme de recursos) configurados para dirigir a los usuarios a las diversas funcionalidades e información dentro de la aplicación web. Como se ilustra, el menú de navegación superior 112 comprende un sistema de menús basado en pestañas que requiere que los usuarios naveguen por varias pestañas para acceder a la pluralidad de enlaces URL. Asimismo, el área de la barra lateral 104 comprende un menú de navegación lateral 114, que incluye una pluralidad de enlaces URL adicionales para acceder a las funcionalidades e información de la aplicación web. Como resultado, la curva de aprendizaje para navegar por las funciones y la información de la aplicación web puede resultar pronunciada y requerir una gran cantidad de tiempo y recursos por parte de los usuarios. Estas dificultades pueden complicar aún más los retos a los que se enfrentan algunas empresas en relación con la adopción de tecnología dentro de sus organizaciones. Actualmente, las organizaciones miden las tasas de adopción de tecnología que implementan y, por lo general, buscan soluciones de capacitación para los casos de baja adopción. Debido a estas bajas tasas de adopción, la productividad de los usuarios se ve afectada, las empresas presentan informes incompletos y los usuarios tienen dificultades para desempeñar con éxito sus funciones.
[0079] Estas desventajas inherentes a los sistemas conocidos no se han ignorado por completo. Como se muestra en la FIG. 1, la ventana 102 incluye una barra de búsqueda 116. Esta barra de búsqueda 116 está configurada para buscar enlaces URL que apuntan a diversas funciones e información dentro de la aplicación web. Sin embargo, como se explica con más detalle a continuación, estas búsquedas pueden requerir que los usuarios accedan a múltiples aplicaciones mientras utilizan la función de búsqueda, lo que consume innecesariamente tiempo y recursos del sistema.
[0081] Otro problema con los métodos conocidos para navegar por aplicaciones web es el consumo de recursos del sistema. En este ejemplo, cada enlace URL está configurado para generar una solicitud GET del protocolo de transferencia de hipertexto (HTTP) dirigida al servidor, descargando lenguaje de marcado de hipertexto (HTML), imágenes, hojas de estilo en cascada (CSS) y código JavaScript en la memoria local del terminal de usuario. Como resultado, a medida que el usuario navega de forma ineficiente de una aplicación a otra, el terminal de usuario debe almacenar en caché o volver a descargar partes de la aplicación web. Dados los recursos limitados del sistema, esto puede afectar negativamente al rendimiento de las aplicaciones web en los terminales de usuario y repercutir negativamente en la productividad de los usuarios. Ofrecer una solución a estos problemas de usabilidad tiene importantes repercusiones financieras positivas para diversas empresas y usuarios de tecnología de software.
[0083] Con referencia a la FIG. 2, se muestra un ejemplo de diagrama de bloques de un sistema informático para una aplicación web CRM de ejemplo de acuerdo con los principios divulgados en el presente documento. El lado del servidor 300 puede implementarse en hardware o en una combinación de hardware y software. En este ejemplo, las técnicas descritas en el presente documento se implementan en un entorno de software, como un sistema operativo o en una aplicación que se ejecuta en un sistema operativo. Este software puede incluir, entre otros, software residente, firmware, etc., o puede implementarse en sistemas de red virtualizados o basados en la nube. El lado del servidor 300 comprende al menos una unidad de procesamiento (CPU) 304 y al menos una memoria 306, interconectadas a través de un bus 302. El módulo de comunicación 310 está configurado para permitir que el lado del servidor 300 se comunique con el terminal de usuario 202 a través de la red 400. Además, la arquitectura del sistema informático comprende la base de datos CRM 308. Esta base de datos CRM 308 está configurada para almacenar datos CRM, incluyendo, entre otros, información de ventas, usuarios y marketing. La base de datos CRM 308 puede almacenar datos en una o más bases de datos.
[0085] Un experto en la materia reconocerá fácilmente que la arquitectura del sistema del lado del servidor 300 es una vista simplificada y puede incluir elementos adicionales no representados sin apartarse de los principios divulgados en el presente documento. Por ejemplo, aunque se muestra un único lado del servidor 300 independiente, varios servidores (o dispositivos similares a servidores) pueden conectarse a uno o más sistemas de almacenamiento de datos. Además, el lado del servidor 300 puede ser local, remoto o una combinación de ambos. En este ejemplo, el lado del servidor 300 está configurado para comunicarse a través de la red 400.
[0087] El terminal de usuario 202 se comunica con el lado del servidor 300 a través de la red 400. Entre los terminales de usuario a modo de ejemplo se incluyen, entre otros, teléfonos móviles, teléfonos celulares, teléfonos inteligentes, ordenadores portátiles, netbooks, asistentes digitales personales (PDA) o cualquier otro dispositivo informático con pantalla adecuado para la comunicación en red. En este ejemplo, el terminal de usuario 202 incluye una aplicación de navegador web compatible con la ejecución de código JavaScript, JavaScript asíncrono y XML (AJAX), HTM<l>y CSS. La aplicación 204 incluye instrucciones ejecutables por ordenador y se almacena en la memoria del terminal de usuario 202. Como se describe en detalle a continuación, la aplicación 204 está configurada para ejecutar acciones rápidas que permiten recibir, procesar, almacenar y transmitir información entre el terminal de usuario 202 y el lado del servidor 300.
[0089] La red 400 puede ser una red de área local (LAN), una red de área extensa (WAN), Internet, una red celular, una red satelital o cualquier otra red que permita la transferencia y/o recepción de datos hacia y/o desde el lado del servidor 300. Los datos transmitidos hacia o desde el lado del servidor 300 a través de la red 400 pueden transmitirse y/o recibirse utilizando protocolos de telecomunicaciones estándar o protocolos de red estándar. En el ejemplo mostrado en la FIG. 2, el sistema utiliza el protocolo de control de transmisión/protocolo de Internet (TCP/IP) y la red 400 es Internet. Otros ejemplos de protocolos para transmitir y/o recibir datos incluyen, entre otros, el protocolo de voz sobre IP (VOIP), el servicio de mensajes cortos (SMS) y el sistema global para comunicaciones móviles (GSM). La red 400 puede utilizar uno o más protocolos de la aplicación 204 y del lado del servidor 300. Además, la red 400 puede traducir a o desde otros protocolos a uno o más protocolos del terminal de usuario 202. Como resultado, un usuario puede cambiar fácilmente de un dispositivo a otro mientras sigue utilizando la aplicación web CRM de acuerdo con los principios divulgados en el presente documento.
[0091] La FIG. 3 muestra un diagrama de bloques de los componentes de ejemplo de una aplicación CRM que se ejecuta en un terminal de usuario de acuerdo con los principios divulgados en el presente documento. La aplicación 500 comprende una vista de aplicación 502, un controlador de eventos 504, un motor de enrutamiento 506, un estado interno 508, un motor de búsqueda 510 y un motor de informes 512. La vista de aplicación 502 está configurada para mostrar diversos elementos de GUI, incluyendo un mecanismo de entrada. Los mecanismos de entrada de ejemplo incluyen, entre otros, una entrada de búsqueda, botones, enlaces URL y entrada de voz o habla. El motor de búsqueda 510 está configurado para recibir una entrada desde el terminal de usuario. El comparador de eventos 514 está configurado para identificar eventos coincidentes correspondientes basándose en una comparación de la entrada con eventos predefinidos. Posteriormente, el motor de búsqueda 510 devuelve una lista de enlaces URL correspondientes a acciones rápidas relevantes y/o enlaces URL estándar. En este ejemplo, las acciones rápidas se seleccionan basándose en etiquetas, clases o atributos
identificares asociados con la entrada. Por ejemplo, el comparador de eventos puede estar configurado para devolver la definición de etiqueta, clase o atributo identificare de addCustomer para las entradas relacionadas con "añadir un nuevo cliente", "nuevo cliente", "nuevo" y/o "añadir". Para un experto en la materia, será evidente el uso de diversos términos o frases para asignar la definición de etiqueta, clase o atributo identificable de addCustomer a una entrada de usuario sin apartarse de los principios divulgados en el presente documento.
[0093] El motor de enrutamiento 506 está configurado para recibir información y determinar la aplicación 500 y la vista de aplicación 502 de la aplicación CRM que se mostrarán en el terminal de usuario (mostrado en la FIG. 2). El estado interno 508 comprende variables globales y el estado de la aplicación. El controlador de eventos 504 está configurado para gestionar los eventos que se producen en la interfaz de usuario de la vista de la aplicación 502.
[0095] Pasando a las FIG. 4A-4C, se muestra un proceso a modo de ejemplo de uso de acciones rápidas para mejorar la usabilidad de las GUI de acuerdo con los principios divulgados en el presente documento. Tal como se muestra en la FIG.
[0096] 4A, el terminal de usuario 602 es un teléfono inteligente y comprende una pantalla 604 y un micrófono 606. En la pantalla 604 se muestra una aplicación de navegador web que ejecuta una aplicación CRM a modo de ejemplo que incluye código JavaScript, AJAX, HTML y CSS. El fragmento de código 1 ilustra un fragmento de código a modo de ejemplo para implementar acciones rápidas que se ejecutan en el terminal de usuario 602. Un fragmento de código es un conjunto incompleto de instrucciones en un lenguaje de software específico, como código Javascript, AJAX, HTML, CSS, C# y/o C++, y puede contener una rutina o subrutina.
[0098] Fragmento de código 1:
[0099] var app = {
[0100] options: {
[0101] ajaxParams: { action:'app' },
[0102] },
[0103] searchCustomers: function(options, funcCallback, objCallback) { ... },
[0104] addCustomer: function(options, funcCallback, objCallback) {...}
[0105] };
[0106] /** Configurar controladores de clic en cualquier etiqueta de anclaje que tenga la clase selectCustomer */ $('body').on('click','a.selectCustomer', function(event){ ...});
[0107] $('body').on('click','a.addCustomer', function(event){ ... });
[0108] $('body').on('click','div[data-method="selectCustomer"]', function(event){ ...});
[0109] $('body').on('click','span#addCustomer', function(event){ ... });
[0111] Como se muestra en el fragmento de código 1, se definen acciones rápidas que utilizan funciones de devolución de llamada para buscar y añadir clientes. Las variables de la aplicación se corresponden con las clases principales de la aplicación CRM y definen cualquier función y variable accesible globalmente para la aplicación CRM. Por consiguiente, las acciones rápidas para searchCustomers y addCustomers están configuradas para ser invocadas desde cualquier aplicación CRM. Los argumentos pasados al método searchCustomers incluyen opciones, una función de devolución de llamada y un objeto de devolución de llamada. Los argumentos pasados al método addCustomer incluyen opciones, una función de devolución de llamada y un objeto de devolución de llamada. El fragmento de código 1 también incluye configuraciones para los controladores de clics de una etiqueta, clase o atributo identificable. Estos controladores de clics están configurados para invocar los métodos globales searchCustomers y addCustomer, respectivamente. Los controladores de clics se definen fuera de las variables de la aplicación y, por lo tanto, solo son accesibles para la aplicación específica dentro de la aplicación CRM que los define.
[0113] La ventana de aplicación principal 608 muestra la aplicación web CRM con la que el usuario está interactuando. En este ejemplo, la ventana de aplicación principal 608 comprende una pluralidad de elementos de GUI, incluyendo la barra de búsqueda 610, el enlace URL 612 y el enlace URL 614. Tal como se muestra, el enlace URL 612 comprende texto seleccionable, mientras que el enlace URL 614 comprende un icono seleccionable. Además, Además, el enlace URL 612 y el enlace URL 614 incluyen una etiqueta, clase o definición de atributo identificable para addCustomer. Por lo tanto, el enlace URL 612 y el enlace URL 614 están configurados para llamar una acción rápida de añadir un cliente de acuerdo con los principios divulgados en el presente documento.
[0115] Además, la barra de búsqueda 610 está configurada para permitir al usuario buscar y seleccionar una acción rápida de acuerdo con los principios divulgados en el presente documento. El usuario puede introducir texto en la barra de búsqueda 610. Asimismo, el terminal de usuario 602 está configurado para recibir voz o habla a través del micrófono 606. Un servicio o procesador de conversión de voz a texto está configurado para generar una interpretación textual de la entrada de voz o habla introducida en la barra de búsqueda 610. Como se ha expuesto anteriormente con referencia a la FIG. 3, el motor de búsqueda de la aplicación CRM compara la entrada y devuelve una lista de acciones rápidas seleccionables por el usuario y/o URL estándar para acceder a las aplicaciones de la aplicación CRM. En este ejemplo, un resultado para "añadir cliente" incluye una etiqueta, clase o atributo identificable para addCustomer. Para un experto en la materia, resultará evidente que la entrada de texto, la entrada de búsqueda de audio, la entrada de botones o la entrada de texto pueden seleccionarse desde cualquier lugar dentro de la ventana de aplicación principal 608 y/o dentro de la aplicación CRM sin apartarse de los principios divulgados en el presente documento.
[0116] En el paso 616, el usuario selecciona una acción rápida para añadir un cliente. Como resultado, se desencadena un evento onClick que el controlador de eventos de la aplicación CRM procesa en el paso 618 (mostrado en la FIG. 4B). En este ejemplo, el controlador de eventos determina la acción rápida que se va a procesar comparando la etiqueta, clase o definición de atributo identificable del elemento que ha desencadenado el evento onClick con las acciones rápidas predefinidas. El fragmento de código 2 ilustra un fragmento de código a modo de ejemplo para procesar un evento onClick para añadir un cliente.
[0118] Fragmento de código 2:
[0119] $('body'). on('click','a.addCustomer', function(event){
[0120] event.preventDefault(); // Evitar que el navegador ejecute href.
[0121] event.stopImmediatePropagation(); // Detener la ejecución del resto de los eventos.
[0122] var $that = $(this);
[0123] app.addCustomer(
[0124] {}, // opciones
[0125] function(data) { // función de devolución de llamada
[0126] var linkhref = $that.attr('href); // obtener enlaces iniciales href
[0127] linkhref = linkhref+'&'+$.param(data); // agregar los resultados de la función de devolución de llamada al enlace inicial
[0128] location.href = linkhref; // ir al enlace con los nuevos datos anexos.
[0129] }
[0130] );
[0131] });
[0133] $('body').on('click','span#addCustomer', function(event) {
[0134] event.preventDefault(); // Evitar que el navegador ejecute href.
[0135] event.stopImmediatePropagation(); // Detener la ejecución del resto de los eventos.
[0136] var $that = $(this);
[0137] app.addCustomer(
[0138] {}, // opciones
[0139] function(data) { // función de devolución de llamada
[0140] var linkhref = $that.attr('href); // obtener enlaces iniciales href
[0141] linkhref = linkhref+'&'+$.param(data); // agregar los resultados de la función de devolución de llamada al enlace inicial
[0142] location.href = linkhref; // ir al enlace con los nuevos datos anexos.
[0143] }
[0144] );
[0145] });
[0147] Como se muestra en el fragmento de código 2, el controlador de eventos suspende el estado interno de la aplicación que se está ejecutando actualmente en la ventana de aplicación principal 608. En este ejemplo, se impide que el navegador modifique la aplicación actual deshabilitando el comando de referencia de hipertexto (HREF) y deteniendo la ejecución de todos los demás eventos de la aplicación. La pluralidad de elementos de GUI de la aplicación que se está ejecutando actualmente en la ventana de aplicación principal 608 están configurados para permanecer renderizados en la ventana de aplicación principal 608, mientras su estado interno permanece suspendido. Además, cualquier código HTML, imágenes, CSS y JavaScript asociado con la aplicación que se está ejecutando actualmente en la ventana de aplicación principal 608 permanece almacenado en la memoria de acceso aleatorio (RAM) del sistema. Como resultado, el usuario puede interactuar con la acción rápida y volverá automáticamente al estado actual de la aplicación que se está ejecutando en la ventana de aplicación principal 608 después de salir o cancelar la acción rápida. Además, el controlador de eventos almacena una referencia al elemento en el que se ha hecho clic, lo que permite a la acción rápida acceder a los valores del elemento en el que se ha hecho clic. En el fragmento de código 2, se almacena una referencia a la aplicación actualmente suspendida en la ventana de aplicación principal 608. Como resultado, se puede acceder a las funciones (incluidas las acciones rápidas) y las variables definidas en el fragmento de código 1 dentro de una acción rápida. En el paso 620, la acción rápida se procesa mediante una función de devolución de llamada. El fragmento de código 3 ilustra un fragmento de código de ejemplo para procesar una acción rápida para añadir un cliente.
[0149] Extracto de código 3:
[0150] addCustomer: función(opciones, funcCallback, objCallback) {
[0152] var params = $.extend({}, app.options.ajaxParams, options.ajaxParams);
[0153] params.action = arguments.callee.name; // 'addCustomer'
[0155] / * *obtener formulario html */
[0156] $.get('index.php',function(data) {
[0158] /** Cargar contenidos en un modal.* /
[0159] modal.html(data). show();
[0160] /** buscar un botón con la clase de búsqueda de cliente y, si se encuentra, añadir un evento de clic. */ modal.find('.btn-searchCustomers').on('dick', function(e){
[0161] /** impedir que el formulario se envíe de forma nativa */
[0162] e.preventDefault();
[0163] e.stopImmediatePropagation();
[0164] /** ejecutar un nuevo método con la devolución de llamada original. */ app.searchCustomers({ajaxParams:ajaxParams},funcCaNback,objCaNback);
[0165] });
[0166] /** configurar eventos para el formulario de añadir cliente */
[0167] modal.find('form').on('submit',function(e){
[0168] /** impedir que el formulario se envíe de forma nativa */
[0169] e.preventDefault();
[0171] e.stopImmediatePropagation();
[0172] /** Hacer una llamada ajax aquí con la información del formulario */ $.post('index.php',form.params,function(data){
[0173] /** Los resultados de Ajax devolverán los datos a la función de devolución de llamada original */ funcCallback(data);
[0174] });
[0175] });
[0176] });
[0177] }
[0179] Como se muestra en el fragmento de código 3, la acción rápida para añadir un cliente comprende una función de devolución de llamada. En este ejemplo, la acción rápida está configurada para cargar varios elementos de GUI para añadir un cliente en la ventana de aplicación secundaria 626. Esta ventana de aplicación secundaria 626 está configurada para mostrarse dentro de los límites de la ventana de aplicación principal 608. En este ejemplo, la ventana de aplicación secundaria 626 no es una ventana independiente y su contenido se muestra dentro de la ventana de aplicación principal 608. Además, los diversos elementos de GUI de la ventana de aplicación secundaria 626 se superponen a la pluralidad de elementos de GUI de la ventana de aplicación principal 608 ubicados dentro de los límites de la ventana de aplicación secundaria 626. Como resultado, se puede mejorar la capacidad de respuesta del terminal de usuario 602, ya que no es necesario descargar los diversos elementos de GUI mostrados dentro de la ventana de aplicación principal 608 antes de mostrar los elementos de GUI de la ventana de aplicación secundaria 626. Además, al mantener los elementos de GUI de la ventana de aplicación principal 608, el terminal de usuario 602 puede mostrar rápidamente la ventana de aplicación principal 608 al salir de la acción rápida. Para un experto en la materia, resultará evidente mostrar la ventana de aplicación secundaria en una ventana independiente, por ejemplo, una ventana emergente, sin apartarse de los principios divulgados en el presente documento.
[0181] La ventana de aplicación secundaria 626 es una ventana de aplicación secundaria de la ventana de aplicación principal 608 y se muestra dentro de la ventana de aplicación principal 608. Cuando la ventana de aplicación secundaria 626 está abierta el usuario no puede interactuar con la ventana de aplicación principal 608 . En el paso 620, los detalles de la acción rápida se devuelven al proceso original que la invocó. Posteriormente, el proceso original muestra la ventana de aplicación 626 dentro de la ventana de aplicación principal 608. Como se muestra en el paso 624, la ventana de aplicación secundaria 626 incluye campos para introducir el nombre, la dirección de correo electrónico y el número de teléfono del nuevo cliente. Además, la ventana de aplicación secundaria 626 comprende un botón de envío 628.
[0183] Pasando a la FIG. 4C, en el paso 630, el usuario pulsa el botón de envío. A continuación, el controlador de eventos de la aplicación CRM procesa la acción rápida para añadir un cliente en el paso 632. Como se muestra en el fragmento de código 3, primero se deshabilita la acción predeterminada del botón de envío para enviar un formulario. A continuación, se ejecuta la publicación del formulario, donde la información de la acción rápida, incluyendo variables y datos, se configura para devolver los datos a la función de devolución de llamada original. Por último, en el paso 634, se cierra la ventana de aplicación secundaria 626 y la ventana de aplicación principal 608 vuelve a su estado anterior al inicio de la acción rápida. En algunos ejemplos, este proceso puede incluir la eliminación de cualquier evento en cola en el controlador de eventos. Además, la ventana de aplicación principal puede notificar al usuario si la adición del nuevo usuario se realizó correctamente o utilizar los datos para otras funciones. Por ejemplo, si la aplicación de la ventana principal estaba creando un nuevo listado de propiedades, los datos devueltos por la acción rápida para crear un nuevo cliente pueden utilizarse para completar la información de propiedad y contacto del nuevo listado de propiedades.
[0185] Una segunda aplicación también puede ejecutar una tercera aplicación. El fragmento de código 3 comprende un controlador de eventos para la función de devolución de llamada en la ventana de aplicación secundaria 626 para buscar clientes.
[0187] /** buscar un botón con la clase de búsqueda de cliente y, si se encuentra, añadir un evento de clic. */ modal.find('.btn-searchCustomers').on('click', function(e){
[0188] /** impedir que el formulario se envíe de forma nativa. */
[0189] e.preventDefault();
[0190] e.stopImmediatePropagation();
[0191] /** ejecutar un nuevo método con la devolución de llamada original. */ app.searchCustomers({ajaxParams:ajaxParams},funcCallback,objCallback);
[0192] });
[0194] Antes de ejecutar la función de devolución de llamada para buscar clientes, el controlador de eventos suspende los eventos en la ventana de aplicación secundaria 626. Los elementos de GUI de la aplicación que se está ejecutando actualmente en la ventana de aplicación secundaria 626 están configurados para permanecer renderizados en dicha ventana de aplicación secundaria 626, mientras que su estado interno permanece suspendido. Además, cualquier código HTML, imágenes, CSS y JavaScript asociado con la aplicación que se está ejecutando actualmente en la ventana de aplicación secundaria 626 permanece almacenado en la RAM del sistema. Por consiguiente, la ventana de aplicación secundaria 626 puede volver a su estado original tras completar la búsqueda de clientes. Esto mejora considerablemente la usabilidad de la aplicación CRM, ya que permite al usuario confirmar la existencia de un registro de cliente sin salir de la acción rápida para añadir un nuevo cliente. En este ejemplo, la acción rápida para buscar clientes se llama mediante la función de devolución de llamada original invocada por la ventana de aplicación principal 626. Como se muestra en el fragmento de código 1, la función de devolución de llamada searchCustomers se define como una función global. Por lo tanto, la función de devolución de llamada searchCustomer se puede llamar desde cualquier lugar de la aplicación CRM. El fragmento de código 4 ilustra un fragmento de código de ejemplo para procesar una acción rápida de búsqueda de clientes.
[0196] Fragmento de código 4:
[0197] searchCustomers: función(opciones, funcCallback, objCallback) {
[0199] var params = $.extend({}, app.options.ajaxParams, options.ajaxParams);
[0200] params.action = arguments.callee.name; // 'searchCustomers'
[0202] /** obtener formulario html */
[0203] $.get('index.php',function(data) {
[0205] /** Cargar contenidos en un modal. */
[0206] modal.html(data).show();
[0208] /** buscar un botón con la clase de búsqueda de cliente y, si se encuentra, añadir un evento de clic.*/ modal.fmd('.btn-addCustomer').on('click', function(e){
[0209] /** impedir que el formulario se envíe de forma nativa */
[0210] e.preventDefault();
[0211] e. stopImmediatePropagation();
[0212] /** ejecutar un nuevo método con la devolución de llamada original. */
[0213] app.addCustomer({ ajaxParams:ajaxParams},funcCallback,objCallback);
[0214] });
[0216] /** cargar autocompletado de cliente */
[0217] $('input. searchCustomers'). autocompleter({
[0218] onSelect: function(data) {
[0219] /** al seleccionar a alguien, devolver los datos seleccionados a la función de devolución de llamada original */
[0220] funcCallback(data);
[0221] }
[0222] });
[0223] });
[0224] },
[0226] /** Configurar controladores de clic en cualquier etiqueta de anclaje que tenga la clase selectCustomer */ $('body').on('clickVa.selectCustomer', function(event) {
[0227] event.preventDefault(); // Evitar que el navegador ejecute href.
[0228] event.stopImmediatePropagationO; // Detener la ejecución del resto de los eventos.
[0229] var $that = $(this);
[0230] app.searchCustomer(
[0231] {}, // options
[0232] function(data) { // función de devolución de llamada
[0233] var linkhref = $that.attr('href); // obtener enlaces iniciales href
[0234] linkhref = linkhref+'&'+$.param(data); // añadir los resultados de la función de devolución de llamada al enlace inicial
[0236] location.href = linkhref; // ir al enlace con los nuevos datos anexos.
[0237] }
[0238] );
[0239] });
[0241] Como se muestra en el fragmento de código 4, la acción rápida para buscar un cliente comprende una función de devolución de llamada. En este ejemplo, la acción rápida está configurada para cargar varios elementos de GUI para buscar un cliente en una ventana de aplicación secundaria. El proceso de búsqueda de un cliente es similar a los pasos descritos anteriormente para añadir un nuevo cliente mediante acciones rápidas de acuerdo con los principios divulgados en el presente documento.
[0243] Con referencia ahora a las FIG. 5A-5C, se muestra un método a modo de ejemplo de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento. En la FIG. 5A, pantalla 700, se muestra un ejemplo de GUI de una aplicación CRM. La ventana de aplicación principal 702 muestra la aplicación actual de la aplicación CRM. En este ejemplo, la aplicación actual sirve para crear una tarjeta electrónica de invitación abierta para promocionar una jornada de puertas abiertas para un listado de propiedades. La ventana de aplicación principal 702 incluye la barra de búsqueda 704. En este ejemplo, la entrada de la barra de búsqueda 704 es "enviar tarjeta electrónica de invitación abierta" o cualquier otra frase relacionada con el envío de una tarjeta electrónica. Como se ha expuesto anteriormente con referencia a la FIG. 3, el motor de búsqueda de la aplicación CRM está configurado para recibir la entrada de la barra de búsqueda 704 y mostrar una lista de enlaces URL correspondientes a acciones rápidas relevantes y/o enlaces URL estándar. En este ejemplo, el enlace URL 706 corresponde a una acción rápida de la sección de marketing por correo electrónico de la aplicación CRM.
[0245] El método convencional (sin utilizar acciones rápidas) requiere que los usuarios realicen varios pasos para enviar una tarjeta electrónica. En primer lugar, el usuario debe utilizar el motor de enrutamiento de la aplicación CRM para acceder a la aplicación y crearla. En este ejemplo, esto se puede lograr accediendo al panel de marketing y seleccionando "Crear tarjeta electrónica" o utilizando la barra de búsqueda 704. A continuación, el usuario debe acceder a la aplicación para enviar la tarjeta electrónica. Cada paso transmite una solicitud HTTP GET al servidor y descarga código HTML, imágenes, CSS y JavaScript en la memoria local del terminal del usuario. Como resultado, el terminal de usuario debe almacenar en caché o volver a descargar partes de la aplicación web, ya que el usuario navega de forma ineficiente de una aplicación a otra para enviar una tarjeta electrónica. Dados los recursos limitados del sistema, esto puede afectar negativamente el rendimiento de la aplicación web en los terminales de usuario. El uso de acciones rápidas, de acuerdo con los principios divulgados en el presente documento, reduce sustancialmente el tiempo, los pasos y, por lo tanto, la capacitación necesaria para que los usuarios aprendan de forma eficaz a enviar tarjetas electrónicas.
[0247] En la FIG. 5B, después de que el usuario haya seleccionado el enlace de acción rápida, el controlador de eventos de la aplicación CRM procesa la acción rápida correspondiente para enviar por correo electrónico la tarjeta electrónica de invitación abierta. Esta acción rápida utiliza una función de devolución de llamada para suspender el estado interno de la aplicación actual, que se ejecuta en la ventana de aplicación principal 702, y ejecutar otra aplicación en la ventana de aplicación secundaria 708. Como se muestra, la ventana de aplicación secundaria 708 incluye una pluralidad de elementos de GUI que permiten al usuario configurar el asunto, los destinatarios, la fecha y la hora de envío de la tarjeta electrónica. El botón de envío 710 está configurado para procesar el envío de la tarjeta electrónica cuando el usuario lo pulsa, de acuerdo con los principios divulgados en el presente documento. Tal como se muestra en la FIG. 5B, el usuario puede previsualizar rápidamente partes de la tarjeta electrónica (que actualmente está suspendida en la ventana de aplicación principal 702) mientras configura los destinatarios de la tarjeta electrónica.
[0249] En algunos ejemplos, la ventana de aplicación secundaria puede estar configurada para moverse dentro de la ventana de aplicación principal, lo que permite al usuario previsualizar diferentes partes de la tarjeta electrónica. Entre sus ventajas se incluye la posibilidad la posibilidad de que el usuario obtenga una vista previa de la tarjeta para detectar posibles errores sin ser redirigido a una aplicación diferente dentro de la aplicación CRM. Además, si el usuario sale de la aplicación CRM y vuelve más tarde, puede determinar rápidamente qué tarjeta electrónica estaba procesando en ese momento.
[0250] En la FIG. 5C, la ventana de aplicación secundaria 708 muestra un resumen de los destinatarios de la tarjeta electrónica y las opciones para compartir la tarjeta electrónica en diversas plataformas de redes sociales. Además, el usuario puede salir de la ventana de aplicación secundaria 708 y volver automáticamente a la ventana de aplicación principal 702.
[0251] En las FIG. 6A-6B se muestra un método a modo de ejemplo de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento. La pantalla 800 comprende la ventana de aplicación principal 802. Esta ventana de aplicación principal 802 está configurada para mostrar la aplicación actual de la aplicación de CRM con la que el usuario está interactuando. En este ejemplo, la ventana de aplicación principal 802 muestra una página de inicio de ejemplo de una aplicación web CRM. La ventana de aplicación principal 802 incluye la barra de búsqueda 804. En este ejemplo, la entrada en la barra de búsqueda 804 es "configurar informe de vendedor". Basándose en esta entrada, se muestra el enlace URL 806. Este enlace URL 806 corresponde a una acción rápida para la aplicación de informes por correo electrónico dentro de la aplicación CRM.
[0253] El método convencional (sin utilizar acciones rápidas) requiere que el usuario realice varios pasos para navegar hasta el motor de marketing por correo electrónico dentro de la aplicación CRM y configurar un nuevo Informe de vendedor de la
propiedad. En primer lugar, el usuario debe utilizar el motor de enriam iento para navegar hasta la aplicación que alberga el motor de informes por correo electrónico y, a continuación, realizar varios pasos para crear un Informe de vendedor de la propiedad. Cada paso que el usuario da para navegar utilizando el motor de enriam iento transmite una solicitud HTTP GET al servidor y descarga código HTML, imágenes, CSS y JavaScript en la memoria local del terminal de usuario. Como resultado, dado que el usuario navega de forma ineficiente de una aplicación a otra para configurar un informe de vendedor de la propiedad, el terminal de usuario debe almacenar en caché o volver a descargar partes de la aplicación web. Dados los recursos limitados del sistema, esto puede afectar negativamente al rendimiento de la aplicación web en los terminales de usuario. El uso de acciones rápidas basadas en los principios divulgados en el presente documento reduce significativamente el tiempo, los pasos y, por lo tanto, la capacitación necesaria para que para que los usuarios aprendan de forma eficaz a enviar y configurar informes de vendedores de propiedades.
[0255] Después de que el usuario haya seleccionado el enlace de la acción rápida, el controlador de eventos de la aplicación CRM procesa la acción rápida correspondiente para crear un informe de vendedor. La acción rápida utiliza una función de devolución de llamada para suspender el estado interno de la aplicación actual, que se ejecuta en la ventana de aplicación principal 802, y ejecutar otra aplicación en la ventana de aplicación secundaria 808. Como se muestra, la ventana de aplicación secundaria 808 incluye varios elementos de GUI para permitir al usuario configurar el informe de vendedor de la propiedad. El botón de envío 810 está configurado para procesar el informe de vendedor y permitir que el usuario continúe interactuando con la aplicación que se ejecuta en la ventana de aplicación principal 802.
[0257] Las FIG. 7A y 7B muestran otro método a modo de ejemplo de uso de acciones rápidas para mejorar la usabilidad de una GUI de acuerdo con los principios divulgados en el presente documento. En la FIG. 7A, la pantalla 900 muestra un ejemplo de GUI de una aplicación<c>R<m>. La ventana de aplicación principal 902 muestra la aplicación actual de la aplicación de CRM para redactar un correo electrónico de cliente. En este ejemplo, la función de redacción de correo electrónico forma parte del motor de marketing por correo electrónico de la aplicación CRM. La ventana de aplicación principal 902 incluye la barra de búsqueda 904. Como se muestra, la entrada de la barra de búsqueda 904 es "cliente". Como se ha expuesto anteriormente con referencia a la FIG. 3, el motor de búsqueda de la aplicación CRM está configurado para recibir la entrada de la barra de búsqueda 904 y mostrar una lista de enlaces URL correspondientes a acciones rápidas relevantes o enlaces URL estándar. En este ejemplo, el enlace URL 906 corresponde a una acción rápida para ejecutar la aplicación de información del cliente de la aplicación CRM.
[0259] El método convencional (sin utilizar acciones rápidas) requiere que el usuario guarde un borrador del correo electrónico y abandone la aplicación de correo electróni
[0260] En caso de que el usuario no esté utilizando ninguna aplicación, se pide que abra una ventana adicional del navegador web, navegue hasta la sección correspondiente de la aplicación CRM, busque la información del cliente y luego vuelva a la otra ventana del navegador web. Como se explica más adelante, las acciones rápidas mejoran drásticamente el flujo de trabajo de los usuarios y, por lo tanto, reducen la necesidad de capacitación.
[0262] Pasando a la FIG. 7B, después de que el usuario haya seleccionado el enlace de la acción rápida, el controlador de eventos de la aplicación c Rm procesa la acción rápida correspondiente para buscar información del cliente. La acción rápida utiliza una función de devolución de llamada para suspender el estado interno de la aplicación actual que se ejecuta en la ventana de aplicación principal 902 y mostrar la ventana de aplicación secundaria 908. Como se muestra, la ventana de aplicación secundaria 908 incluye varios elementos de interfaz gráfica de usuario que permiten al usuario buscar información del cliente. El botón de envío 910 está configurado para buscar en la base de datos CRM la información del cliente solicitada cuando el usuario selecciona el botón de envío 910, de acuerdo con los principios divulgados en el presente documento. Una vez que el usuario encuentra la información del cliente necesaria, puede cerrar la ventana de aplicación secundaria 908 y continuar redactando el correo electrónico del cliente en la ventana de aplicación principal 902.
[0264] Si bien los ejemplos anteriores se refieren al uso de acciones rápidas para una aplicación CRM a modo de ejemplo, para un experto en la materia resultará evidente utilizar acciones rápidas para mejorar la usabilidad de las interfaces de usuario en otros campos, sin apartarse de los principios divulgados en el presente documento. De hecho, los principios divulgados en el presente documento pueden utilizarse para cualquier implementación de una interfaz de usuario en teléfonos inteligentes, automóviles con pantallas interactivas, operadores de máquinas con pantallas interactivas y otros dispositivos informáticos.
[0266] Por ejemplo, al utilizar un sistema de infoentretenimiento para automóviles, se puede solicitar al conductor que acceda a las funciones del vehículo abriendo una aplicación y respondiendo a las indicaciones, todo ello mientras realiza diversas tareas relacionadas con la conducción. Algunos sistemas de ejemplo incluyen, entre otros, la interfaz iDrive de BMW. Los sistemas de infoentretenimiento convencionales para automóviles pueden requerir que el usuario navegue por varias ventanas para acceder a algunas de estas funciones, lo que puede distraer al usuario de la conducción.
[0268] Pasando a la FIG. 8, se muestra un diagrama de bloques a modo de ejemplo de un sistema de interfaz de vehículo de acuerdo con los principios divulgados en el presente documento. El sistema de interfaz de vehículo 1000 comprende una pantalla 1002 conectada a un controlador de interfaz del vehículo 1004. La pantalla 1002 incorpora una pantalla táctil. El controlador de interfaz del vehículo 1004 comprende una unidad central de procesamiento (CPU) 1006, una unidad de procesamiento gráfico (GPU) 1008 y una memoria 1010. En este ejemplo, el controlador de interfaz del vehículo 1004
está conectado a los diversos controles y subsistemas del vehículo mediante el transceptor de red de área de controlador (CAN) 1012 y el transceptor de red de interconexión local (LIN) 1014. Entre los subsistemas de ejemplo se incluyen el subsistema de monitor de presión de neumáticos (TPM) 1016, el subsistema de control de climatización 1018, el subsistema de audio 1020, el subsistema de monitorización del tren de transmisión 1022, el subsistema de gestión de energía 1024 y el subsistema del tren de potencia 1026. Los subsistemas del vehículo están configurados para que una aplicación de interfaz del vehículo que se ejecuta en el controlador de interfaz del vehículo 1004 pueda acceder a ellos y/o visualizarlos en la pantalla 1002, de acuerdo con los principios divulgados en el presente documento. La aplicación de interfaz del vehículo comprende una vista de aplicación, un controlador de eventos, un estado interno y un motor de búsqueda. El motor de búsqueda está configurado para recibir una entrada desde la interfaz del vehículo 1004. Por ejemplo, la interfaz del vehículo 1004 está configurada para comunicarse con botones, mandos e interruptores a través de un bus de circuitos integrados (I2C) 1028. La interfaz del vehículo 1004 también está configurada para recibir entradas de los iconos mostrados en la pantalla 1002. La aplicación de interfaz del vehículo comprende un comparador de eventos configurado para identificar eventos coincidentes correspondientes basándose en comparaciones de eventos de entrada y predefinidos.
[0270] La FIG. 9A muestra una pantalla de ejemplo 1100, de acuerdo con el sistema de interfaz del vehículo descrito en la FIG.
[0271] 8. La pantalla 1100 comprende la pantalla 1102 y los controles 1104. Los controles 1104 incluyen botones que son accesos directos a las aplicaciones designadas que se muestran en la pantalla 1102 cuando se seleccionan. La pantalla 1102 incorpora una pantalla táctil que muestra la ventana de aplicación principal 1106. De acuerdo con los principios divulgados en el presente documento, el usuario puede acceder rápida y fácilmente a las diversas aplicaciones del sistema de interfaz del vehículo. Por ejemplo, mientras conduce, el usuario puede recibir una notificación 1106 indicando que la presión de los neumáticos es baja mientras se muestra la aplicación de radio en la ventana de aplicación principal 1106. En este ejemplo, la notificación 1106 está configurada como un enlace rápido de acuerdo con los principios divulgados en el presente documento.
[0273] Los sistemas de interfaz de vehículo convencionales requieren que el usuario acceda a un menú de configuración y busque la aplicación asociada con la revisión del monitor de presión de neumáticos (TPM), todo ello mientras realiza diversas tareas relacionadas con la conducción. Una vez finalizada la revisión de la información, el usuario tendría que volver a la aplicación de radio haciendo clic en varios botones o seleccionando un acceso directo a la aplicación de radio (si está disponible).
[0275] Pasando a la FIG. 9B, después de que el usuario haya seleccionado el enlace de acción rápida para la notificación TPM, el controlador de eventos de la aplicación de interfaz del vehículo procesa la acción rápida correspondiente para revisar el subsistema TPM. Esta acción rápida utiliza una función de devolución de llamada para mostrar la ventana de aplicación secundaria 1110 delante de la ventana de aplicación principal 1106. Además, se suspende la interacción del usuario con la ventana de aplicación principal. Una vez que el usuario haya terminado de revisar la notificación o reiniciado el subsistema TPM, se puede cerrar la ventana de aplicación secundaria 1108. Posteriormente, el usuario puede interactuar plenamente con la aplicación de radio en la ventana de aplicación principal 1106.
[0277] Los diversos aspectos se han descrito anteriormente. Para los expertos en la materia, será evidente que los anteriores métodos y aparatos pueden incorporar cambios y modificaciones sin apartarse del alcance general de las presentes enseñanzas. Se pretende incluir todas esas modificaciones y alteraciones en la medida en que se encuentren dentro del alcance de las reivindicaciones adjuntas. Aunque la descripción anterior es muy específica, esto no debe interpretarse como una limitación del alcance de las presentes enseñanzas, sino simplemente como una ilustración de algunos de sus aspectos. Son posibles otros aspectos y variantes dentro de su alcance.
[0279] Además, si bien los rangos numéricos y los parámetros que definen el amplio alcance de las presentes enseñanzas son aproximaciones, los valores numéricos expuestos en los ejemplos específicos se presentan con la mayor precisión posible. No obstante, cualquier valor numérico contiene inherentemente ciertos errores que se derivan necesariamente de la desviación estándar encontrada en sus respectivas mediciones de prueba.
Claims (10)
1. REIVINDICACIONES
1. Un dispositivo de almacenamiento no transitorio legible por ordenador que almacena instrucciones ejecutables por ordenador que, cuando son ejecutadas por un ordenador, controlan el ordenador para que realice un método para ejecutar una segunda aplicación de software dentro de una primera aplicación de software, comprendiendo el método:
definir una pluralidad de funciones globales que comprenden al menos una función de devolución de llamada, en donde una pluralidad de aplicaciones de software están configuradas para ejecutar la al menos una función de devolución de llamada;
ejecutar la primera aplicación de software de la pluralidad de aplicaciones de software que comprende fragmentos de código para implementar acciones rápidas para utilizar funciones de devolución de llamada, ejecutadas en el ordenador;
mostrar una pluralidad de primeros elementos de interfaz gráfica de usuario (GUI) (610, 612, 614, 704, 706, 804, 806, 904, 906), correspondientes a la primera aplicación de software en una ventana de aplicación principal (608, 702, 802, 902);
configurar al menos un primer elemento de GUI (610, 612, 614, 704, 706, 804, 806, 904, 906) que comprende un evento de clic, en donde el evento de clic del al menos un primer elemento de GUI (610, 612, 614, 704, 706, 804, 806, 904, 906) invoca la al menos una función de devolución de llamada;
recibir una entrada desde el al menos un primer elemento de GUI (610, 612, 614, 704, 706, 804, 806, 904, 906) de la ventana de aplicación principal (608, 702, 802, 902);
un comparador de eventos (514) que compara la entrada recibida y los eventos predefinidos, y un motor de búsqueda (510) de la primera aplicación, que devuelve una lista de acciones rápidas seleccionables por el usuario; seleccionar una acción rápida que desencadena el evento de clic correspondiente;
utilizar la al menos una función de devolución de llamada para suspender la primera aplicación de software y la ventana de aplicación principal (608, 702, 802, 902) en respuesta a la ejecución del evento de clic desde la ventana de aplicación principal (608, 702, 802, 902);
utilizar la al menos una función de devolución de llamada para mostrar una ventana de aplicación secundaria (626, 808, 908) ubicada dentro de la ventana de aplicación principal (608, 702, 802, 902) en respuesta a la ejecución por parte de la primera aplicación de software de la segunda aplicación de software, que comprende fragmentos de código que almacenan una referencia a la primera aplicación actualmente suspendida;
configurar la segunda aplicación para que devuelva datos a la al menos una función de devolución de llamada, y cerrar la ventana de aplicación secundaria (626, 808, 908) y reanudar la primera aplicación de software y la ventana de aplicación principal (608, 702, 802, 902).
2. El dispositivo de almacenamiento no transitorio legible por ordenador de la reivindicación 1, en donde suspender la primera aplicación de software y la ventana de aplicación principal (608, 702, 802, 902) en respuesta a la ejecución del evento de clic desde la ventana de aplicación principal (608, 702, 802, 902) comprende:
impedir que la ventana de aplicación principal (608, 702, 802, 902) cambie; e
impedir que se ejecuten eventos de clic adicionales.
3. El dispositivo de almacenamiento no transitorio legible por ordenador de una de las reivindicaciones anteriores, en donde mostrar una ventana de aplicación secundaria (626, 808, 908) en respuesta a la ejecución de una segunda aplicación de software por parte de la primera aplicación de software comprende mostrar una pluralidad de elementos de una segunda interfaz gráfica de usuario (GUI) en la ventana de aplicación secundaria (626, 808, 908).
4. El dispositivo de almacenamiento no transitorio legible por ordenador de una de las reivindicaciones anteriores, en donde mostrar una pluralidad de primeros elementos de GUI (610, 612, 614, 704, 706, 804, 806, 904, 906) en la ventana de aplicación principal (608, 702, 802, 902) comprende mostrar una ventana modal.
5. El dispositivo de almacenamiento no transitorio legible por ordenador de una de las reivindicaciones anteriores, que comprende, además, instrucciones ejecutables para configurar el ordenador a fin de realizar un método, comprendiendo el método:
configurar al menos un segundo elemento de GUI con un evento de clic configurado para invocar una segunda función de devolución de llamada.
6. El dispositivo de almacenamiento legible por ordenador no transitorio de una de las reivindicaciones anteriores, en donde la ejecución de una primera aplicación de software comprende la ejecución de una aplicación de informes de una aplicación de gestión de relaciones con los clientes (CRM).
7. El dispositivo de almacenamiento legible por ordenador no transitorio de una de las reivindicaciones anteriores, que comprende, además, instrucciones ejecutables para configurar el ordenador a fin de realizar un método, comprendiendo el método:
configurar la ventana de aplicación secundaria (626, 808, 908) para que se mueva dentro de la ventana de aplicación principal (608, 702, 802, 902).
8. El dispositivo de almacenamiento legible por ordenador no transitorio de la reivindicación 5, que comprende, además, instrucciones ejecutables para configurar el ordenador a fin de realizar un método, comprendiendo el método:
suspender la segunda aplicación de software y la ventana de aplicación secundaria (626, 808, 908) en respuesta al evento de clic configurado para invocar la segunda función de devolución de llamada;
ejecutar una tercera aplicación de software; y
reanudar la segunda aplicación de software tras la finalización de la tercera aplicación de software.
9. El dispositivo de almacenamiento legible por ordenador no transitorio de la reivindicación 8, en donde suspender la segunda aplicación de software y la ventana de aplicación secundaria (626, 808, 908) en respuesta al evento de clic configurado para invocar una segunda función de devolución de llamada comprende:
impedir que la ventana de aplicación secundaria (626, 808, 908) cambie; e
impedir que se ejecuten eventos adicionales en la ventana de aplicación secundaria (626, 808, 908).
10. El dispositivo de almacenamiento legible por ordenador no transitorio de la reivindicación 3, en donde el método comprende, además:
mostrar la pluralidad de primeros elementos de GUI correspondientes a la primera aplicación de software en la ventana de aplicación principal (608, 702, 802, 902);
recibir un evento de la ventana de aplicación principal (608, 702, 802, 902);
invocar la primera aplicación de software para ejecutar la segunda aplicación de software;
mostrar la pluralidad de segundos elementos de GUI correspondientes a la segunda aplicación de software en la ventana de aplicación secundaria (626, 808, 908); y
reanudar la primera aplicación de software y la ventana de aplicación principal (608, 702, 802, 902) automáticamente después de cerrar la ventana de aplicación secundaria (626, 808, 908).
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202063022703P | 2020-05-11 | 2020-05-11 | |
| US17/215,620 US11704138B2 (en) | 2020-05-11 | 2021-03-29 | Method and system for calling/executing an action from an outside application within an existing open application |
| PCT/US2021/031515 WO2021231262A1 (en) | 2020-05-11 | 2021-05-10 | Method and system for calling/executing an action from an outside application within an existing open application |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES3042513T3 true ES3042513T3 (en) | 2025-11-21 |
Family
ID=78412618
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES21804075T Active ES3042513T3 (en) | 2020-05-11 | 2021-05-10 | Method and system for calling/executing an action from an outside application within an existing open application |
Country Status (11)
| Country | Link |
|---|---|
| US (2) | US11704138B2 (es) |
| EP (1) | EP4150452B1 (es) |
| JP (1) | JP7798797B2 (es) |
| CN (1) | CN115917503B (es) |
| AU (1) | AU2021271799B2 (es) |
| ES (1) | ES3042513T3 (es) |
| FI (1) | FI4150452T3 (es) |
| IL (1) | IL298106B2 (es) |
| MX (1) | MX2022014100A (es) |
| PL (1) | PL4150452T3 (es) |
| WO (1) | WO2021231262A1 (es) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| USD625733S1 (en) * | 2009-03-04 | 2010-10-19 | Apple Inc. | Graphical user interface for a display screen or portion thereof |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1994014115A2 (en) * | 1992-12-01 | 1994-06-23 | Microsoft Corporation | A method and system for in-place interaction with embedded objects |
| US6523022B1 (en) * | 1997-06-09 | 2003-02-18 | Allen Hobbs | Method and apparatus for selectively augmenting retrieved information from a network resource |
| JP2001154966A (ja) | 1999-11-29 | 2001-06-08 | Sony Corp | コンピュータ・ネットワーク上で構築・提供される共有仮想空間上で複数ユーザが参加可能な仮想会話を支援する会話支援システム及び会話支援方法、並びに、プログラム記憶媒体 |
| US6901588B1 (en) * | 2000-04-17 | 2005-05-31 | Codemesh, Inc. | Sharing components between programming languages by use of polymorphic proxy |
| US7594181B2 (en) * | 2002-06-27 | 2009-09-22 | Siebel Systems, Inc. | Prototyping graphical user interfaces |
| US7913183B2 (en) * | 2002-10-08 | 2011-03-22 | Microsoft Corporation | System and method for managing software applications in a graphical user interface |
| US8527943B1 (en) * | 2004-02-12 | 2013-09-03 | Raju V. Chiluvuri | System and method of application development |
| US7499951B2 (en) * | 2005-11-18 | 2009-03-03 | Oracle International Corporation | Capturing data from user selected portions of a business process and transferring captured data to user identified destinations |
| US9690474B2 (en) * | 2007-12-21 | 2017-06-27 | Nokia Technologies Oy | User interface, device and method for providing an improved text input |
| US8365144B1 (en) * | 2008-02-28 | 2013-01-29 | The Mathworks, Inc. | Proxy graphical user interface generation |
| AU2009265217A1 (en) | 2008-07-01 | 2010-01-07 | Talisma Corporation Private Ltd. | Selecting from a list of short message service (SMS) gateways from a graphical user interface (GUI) |
| US9081471B2 (en) * | 2008-09-19 | 2015-07-14 | Oracle International Corporation | Providing modal window views for widgets on web pages |
| TW201331769A (zh) * | 2012-01-31 | 2013-08-01 | Chi Mei Comm Systems Inc | 功能表項查找方法及系統 |
| KR102105460B1 (ko) | 2013-06-14 | 2020-06-01 | 엘지전자 주식회사 | 이동 단말기 및 그것의 제어방법 |
| US20140380139A1 (en) * | 2013-06-21 | 2014-12-25 | Microsoft Corporation | Embedded experience through bidirectional integration of crm applications and spreadsheet applications |
| CA2972406A1 (en) * | 2015-01-02 | 2016-07-07 | Systech Corporation | Control infrastructure |
| KR101730256B1 (ko) | 2015-09-21 | 2017-04-26 | 엔에이치엔엔터테인먼트 주식회사 | 오버레이 제어 방법 및 시스템 |
| US9910722B2 (en) * | 2015-12-29 | 2018-03-06 | Sap Se | Generic callback handling |
| US20170185612A1 (en) * | 2015-12-29 | 2017-06-29 | Successfactors, Inc. | Dynamically designing web pages |
| US10504069B2 (en) * | 2017-05-12 | 2019-12-10 | Salesforce.Com, Inc. | Calendar application, system and method for performing actions on records in a cloud computing platform from within the context of the calendar application |
| US10574097B2 (en) * | 2017-05-26 | 2020-02-25 | The United States Of America, As Represented By The Secretary Of The Navy | Dynamic wireless power/energy transfer system apparatus including modeling and simulation (M and S), analysis, and visualization (MSAV) systems along with related methods |
| US11106934B2 (en) * | 2019-02-11 | 2021-08-31 | Innovaccer Inc. | Automatic visual display overlays of contextually related data from multiple applications |
-
2021
- 2021-03-29 US US17/215,620 patent/US11704138B2/en active Active
- 2021-05-10 WO PCT/US2021/031515 patent/WO2021231262A1/en not_active Ceased
- 2021-05-10 IL IL298106A patent/IL298106B2/en unknown
- 2021-05-10 ES ES21804075T patent/ES3042513T3/es active Active
- 2021-05-10 CN CN202180048132.XA patent/CN115917503B/zh active Active
- 2021-05-10 JP JP2022568806A patent/JP7798797B2/ja active Active
- 2021-05-10 PL PL21804075.6T patent/PL4150452T3/pl unknown
- 2021-05-10 EP EP21804075.6A patent/EP4150452B1/en active Active
- 2021-05-10 MX MX2022014100A patent/MX2022014100A/es unknown
- 2021-05-10 FI FIEP21804075.6T patent/FI4150452T3/fi active
- 2021-05-10 AU AU2021271799A patent/AU2021271799B2/en active Active
-
2023
- 2023-06-27 US US18/341,876 patent/US20230333866A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| CN115917503B (zh) | 2025-04-04 |
| BR112022023073A2 (pt) | 2022-12-20 |
| US11704138B2 (en) | 2023-07-18 |
| MX2022014100A (es) | 2023-02-22 |
| EP4150452B1 (en) | 2025-06-25 |
| AU2021271799A2 (en) | 2022-12-22 |
| US20210349740A1 (en) | 2021-11-11 |
| US20230333866A1 (en) | 2023-10-19 |
| JP2023518117A (ja) | 2023-04-27 |
| IL298106A (en) | 2023-01-01 |
| EP4150452A4 (en) | 2024-06-05 |
| FI4150452T3 (fi) | 2025-09-26 |
| PL4150452T3 (pl) | 2025-11-03 |
| WO2021231262A1 (en) | 2021-11-18 |
| IL298106B1 (en) | 2023-10-01 |
| AU2021271799A1 (en) | 2022-12-15 |
| IL298106B2 (en) | 2024-02-01 |
| AU2021271799B2 (en) | 2023-07-13 |
| CN115917503A (zh) | 2023-04-04 |
| CA3178318A1 (en) | 2021-11-18 |
| EP4150452A1 (en) | 2023-03-22 |
| JP7798797B2 (ja) | 2026-01-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9274913B2 (en) | Event pages for web applications and extensions | |
| US10580051B2 (en) | Background element associated with an application installed in a browser application | |
| CN103718161B (zh) | Web应用体系架构 | |
| US8935755B1 (en) | Managing permissions and capabilities of web applications and browser extensions based on install location | |
| US9400633B2 (en) | Methods and apparatus for voiced-enabling a web application | |
| US8881031B2 (en) | Systems and methods for facilitating media connections | |
| US9292253B2 (en) | Methods and apparatus for voiced-enabling a web application | |
| US8914813B1 (en) | Interfaces to enable cross-browser extensions and applications thereof | |
| US10635505B2 (en) | Automated batch application programming interfaces | |
| US9781262B2 (en) | Methods and apparatus for voice-enabling a web application | |
| EP3407186B1 (en) | Interface refresh synchronization method and apparatus, terminal, and storage medium | |
| US10866884B2 (en) | Stateless injected script debugging | |
| US20140039898A1 (en) | Methods and apparatus for voiced-enabling a web application | |
| US11768880B1 (en) | Community-driven, context-aware intelligent research assistant systems | |
| US9292252B2 (en) | Methods and apparatus for voiced-enabling a web application | |
| US20150324479A1 (en) | Identifying a browser for rendering an electronic document | |
| ES3042513T3 (en) | Method and system for calling/executing an action from an outside application within an existing open application | |
| CN113268277A (zh) | 一种基于web的客户端访问方法及终端设备 | |
| CA3178318C (en) | Method and system for calling/executing an action from an outside application within an existing open application | |
| BR112022023073B1 (pt) | Dispositivos de armazenamento legível por computador não transitório e de computação para executar um segundo aplicativo de software dentro de um primeiro aplicativo de software, métodos realizado por um dispositivo de computação configurado para exibir uma interface gráfica de usuário em uma tela, realizado por um dispositivo de computação configurado para acessar um banco de dados que armazena registros de gerenciamento de relacionamento com o cliente e para executar um segundo aplicativo de software dentro de um primeiro aplicativo de software, e, gerenciamento de relacionamento com o cliente | |
| US20250310286A1 (en) | Enhance chat interaction through 2-way ui communication | |
| US11966733B2 (en) | Tenant configuration supporting dynamic application customization |