Dynamically configured quick actions in the sidebar
The system dynamically generates quick action cards in a web browser sidebar, allowing single-interaction access to application functions, addressing the inefficiencies of multiple-click navigation and enhancing user experience and accessibility.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- MICROSOFT TECHNOLOGY LICENSING LLC
- Filing Date
- 2024-06-12
- Publication Date
- 2026-07-23
AI Technical Summary
Accessing application functions within a web browser requires multiple user interactions, increasing task completion time and difficulty, which can lead to underutilization of application features and user frustration, especially for users with disabilities.
A system and method for dynamically generating quick action cards in a sidebar interface that allow users to perform application functions with a single interaction, such as hovering over an application icon, which includes quick actions linked to executable actions that can be selected without clicking.
Enables efficient and intuitive access to application functions, reducing interaction time and resource consumption, improving user experience and accessibility for all users, including those with disabilities.
Smart Images

Figure 2026524584000001_ABST
Abstract
Description
Technical Field
[0001] Cross - References to Related Applications
[0001] This application claims the benefit of Chinese Application No. 202310799526.X, filed on June 30, 2023, and incorporates it herein by reference in its entirety. The claim of priority is made to the extent appropriate.
Background Art
[0002] Background
【For example, access to the functions of an application may be located within a menu or other hierarchical structure, and often requires multiple user interactions (such as mouse clicks, touch gestures, voice commands) to access. The need for multiple user interactions to access application functions can increase the time to complete a task, and may make the application functions even more difficult to find, which can limit the use of the functions and the operability of the application.
[0003]
[0003] In view of these and other considerations, several examples have been made. Further, although relatively specific problems are discussed, it should be understood that these examples should not be limited to solving the specific problems recognized in the background section.
Summary of the Invention
Means for Solving the Problems
[0004] Summary
[0004] This summary section is provided to introduce in a simplified form some of the concepts that will be further described below in the detailed description section. This summary is not intended to identify the main or essential features of the claimed subject matter, nor is it intended to be an aid in determining the scope of the claimed subject matter.
[0005]
[0005] This technology relates to a system and method for dynamically generating quick actions for an application, which act as shortcuts to actions performed within the application from a web browser interface. In some examples, quick actions correspond to common application functions, such as creating a new document or controlling a media player. In further examples, quick actions are dynamic and may change in response to specific application data (e.g., live data) or other conditions. For example, quick actions may correspond to the last accessed document, recently received communications, calendar invitations, or the status of media item playback. Quick actions are presented in quick action cards that appear in response to hover events of the application's icon. In exemplary implementations, the icon is included in a sidebar displayed next to the web browser interface.
[0006]
[0006] Quick Action Cards can be dynamically generated and displayed based on cursor movement and pausing over application icons. For example, a "click" selection by an input device is not required to trigger the display of a Quick Action Card. Thus, users can select the desired Quick Action and invoke the desired application action with just a single "click" selection. Quick Actions provide efficient access to specific application functions via the sidebar interface while limiting the potential occlusion effect that would normally interfere with interaction with the web browser.
[0007]
[0007] Details of one or more embodiments are described in the accompanying drawings and the following description. Other features and advantages will become apparent from reading the following detailed description and referring to the relevant drawings. It should be understood that the following detailed description is for illustrative purposes only and does not limit the claimed invention.
[0008] Brief explanation of the drawing
[0008] This disclosure is illustrated by the accompanying drawings as an example. In the drawings, the same reference numerals indicate the same elements. The elements in the drawings are shown in a concise and clear manner and are not necessarily drawn to scale. [Brief explanation of the drawing]
[0009] [Figure 1]
[0009] This figure shows an exemplary component used to dynamically generate quick actions for an application to be displayed on a quick action card, according to an example of the present disclosure. [Figure 2A]
[0010] This figure shows a first exemplary quick action card, including quick actions for an application, as illustrated by the examples of the present disclosure. [Figure 2B]
[0011] This figure shows the selection of a first quick action from the first exemplary quick action card in Figure 2A, according to an example of the present disclosure. [Figure 2C]
[0012] This figure shows exemplary actions performed in response to the selection of the first quick action in Figure 2B, according to an example of the present disclosure. [Figure 2D]
[0013] This figure shows the selection of a second quick action from a second exemplary quick action card, as illustrated by the examples of the present disclosure. [Figure 2E]
[0014] This figure shows another action performed in response to the selection of the second quick action in Figure 2D, according to an example of the present disclosure. [Figure 2F]
[0015] This figure shows a third exemplary quick action card presented in a minicontroller custom view, as illustrated by the examples of this disclosure. [Figure 3]
[0016] This figure shows an exemplary system in which the dynamic generation of quick actions for an application is implemented, as illustrated by the examples of this disclosure. [Figure 4]
[0017] This flowchart illustrates an exemplary method for dynamically generating quick actions for an application, as described in the present disclosure. [Figure 5]
[0018] This block diagram shows exemplary physical components of a computing device in which aspects of this disclosure may be put into practice. [Modes for carrying out the invention]
[0010] Detailed explanation
[0019] The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numerals are used in the drawings and the following description to refer to the same or similar elements. While embodiments of the technology may be described, modifications, adaptations, and other implementations are also possible. For example, elements shown in the drawings may be replaced, added, or modified, and the methods described herein may be modified by replacing, rearranging, or adding steps to the disclosed methods. Therefore, the following detailed description is not intended to limit the technology, and the appropriate scope of the technology is defined by the accompanying claims. Some examples may take the form of hardware implementations, full software implementations, or implementations combining software and hardware embodiments. Therefore, the following detailed description should not be construed as restrictive.
[0011]
[0020] In an exemplary implementation, a web browser includes a framework for exposing web-based applications (referred to herein as “applications”) that are launched within the web browser. The framework provides a sidebar interface (referred to herein as the “sidebar”) where icons corresponding to the applications are displayed. Typically, a user can select an icon, open the corresponding application in the web browser, and then select the desired application function located in a menu within the application interface. In other words, accessing a desired function of an application requires multiple user interactions. For example, if a user is using a mouse as an input device, to access a specific application function, the user must first click the application icon to open the application, and then click the hierarchical menu to access the desired function.
[0012]
[0021] As discussed above, this can make it difficult to fully explore and utilize the application's features, potentially leading to underutilization of various application functions. Furthermore, the need for multiple user interactions to access application functions can increase the processing resources required to complete a task. For example, each user interaction requires additional processor and display cycles. The need for multiple interactions can also degrade interaction performance, reducing the overall efficiency of the user experience. This can be problematic for repetitive tasks and / or time-constrained tasks. Moreover, the perceived inefficiency and / or the effort required to complete a task can lead to user frustration, which negatively impacts user satisfaction and may result in decreased application usage. Additionally, too many user interactions can be problematic for users with disabilities. For example, users with motor function limitations or visual impairments may find it difficult to navigate multiple user interactions.
[0013]
[0022] The examples described herein relate to a quick action controller that provides dynamic quick actions corresponding to various application functions within a quick action card. In an exemplary implementation, when the controller detects that a cursor on the screen (e.g., controlled by the user via an input device or touchscreen) is hovering over or pausing (or long-pressing) an icon displayed in a sidebar, it generates a quick action card containing the application quick actions corresponding to the hovered icon, from which the user can select an action. The quick actions are selectable. The selection of a quick action triggers the web browser to handle the action linked to the selected quick action (referred to herein as an executable action), and the handling of that action performs the application function.
[0014]
[0023] Referring to FIG. 1 here, in some examples, in the quick action manifest 102 provided by the provider of the application 118 and stored on the server, for the application 118, executable actions 110a - 110c (collectively, executable actions 110) regarding a set of quick actions 116a - 116c (collectively, quick actions 116) are defined. When the quick action controller generates a quick action card 111 for the application 118, the quick action manifest 102 corresponding to the application 118 is obtained from the server and processed. For example, the quick action controller links the configuration information defined in the quick action manifest 102 to user interface (UI) elements 108a - 108i (collectively, UI elements 108) included in the custom view 104 of the quick action card 111 and other placeholders. Exemplary configuration information can define the type of the custom view 104 (e.g., menu custom view 122 or mini - controller custom view 166), the title 105 and icon 107 to be displayed on the quick action card 111, and one or more quick actions 116. For each quick action 116, the quick action manifest 102 can define various configuration properties of the quick action 116, including the type of the UI element 108 (e.g., button, slider, toggle switch, label, progress indicator, icon, status indicator) provided to the defined custom view 104 to represent the quick action 116, titles 106a - 106c (collectively, titles 106) displayed in relation to the UI element 108 if applicable, and properties such as the executable actions 110a - 110c (collectively, executable actions 110) bound to the UI element 108. For example, the selection of the quick action 116 triggers the executable action 110 linked to the selected quick action 116, where the handling of the executable action 110 implements the application function 112.
[0015]
[0024] In some examples, the quick action 116 can be configured by the application provider. For example, updates to the quick action 116 are pushed to the server, retrieved by the quick action controller, and used to generate a quick action 116 that reflects the updates. The quick action 116 allows the user to easily discover application functions 112 and use such functions 112 to accomplish tasks quickly, intuitively, and efficiently.
[0016]
[0025] Referring to Figure 2A, an exemplary quick action card 111 is shown. For example, the quick action card 111 includes several quick actions 116a to 116c (collectively, quick action 116) for an application 118 launched within the web browser 202. The quick actions 116 provide the user with quick access to the application's functions 112 within the web browser 202. The web browser 202 runs on a client computing device 204 and allows the user to access and browse websites and web pages over one or more networks. The web browser 202 provides a user interface (web browser UI 205) displayed on the screen 208 of the client computing device 204. The web browser UI 205 includes various functions of the web browser 202 and allows the user to navigate various websites, interact with web-based applications (e.g., application 118), perform tasks, access various types of content such as text, images, and videos, communicate information, and manipulate data.
[0017]
[0026] As shown in FIG. 2A, the web browser UI 205 includes a primary display area 220 and a sidebar 210. For example, the web browser 202 displays a web page in the primary display area 220, and the sidebar 210 is located on one side of the primary display area 220. The sidebar 210 is depicted as being located on the right side of the primary display area 220, but in other examples, it is located along another side (e.g., left side, top, or bottom) of the primary display area 220. In some examples, the sidebar 210 provides application icons 206a - 206c (collectively, icons 206) corresponding to the application 118. For example, the application 118 is associated with a remote service running on one or more remote web servers. In one example, the application 118 includes one or a suite of productivity - enhancing applications (e.g., word - processing application, spreadsheet application, presentation application, communication application, memo application), games, media - player applications, and / or other types of applications. In some examples, when a selection (e.g., mouse click, tap) of an application icon 206 is received, the sidebar pane is activated and expands from the sidebar 210. The sidebar pane displays the content associated with the selected application 118 alongside the content displayed in the primary display area 220. An exemplary sidebar pane is shown in FIG. 2E and will be described below with reference to FIG. 2E.
[0018]
[0027] In some examples, the user interacts with the web browser 202 and application 118 using an input device 233 to move a cursor 212 displayed on the screen 208 of the client computing device 204. The input device 233 is also used to interact with UI elements contained in the web browser UI 205 and application UI, and to select UI elements. Some exemplary input devices 233 include a mouse, pen, stylus, touchpad, touchscreen, microphone, optical / magnetic sensor, gamepad, joystick, and keyboard. In some examples, the selection of a UI element is performed using the input device 233, for example, by the user clicking a mouse button, tapping a touchscreen, or pressing a key to indicate their selection. For example, a mouse click, screen tap, or key press received via the input device 233 triggers a selection event.
[0019]
[0028] In some examples, a user can use input device 233 to hover or pause a cursor 212 (e.g., a mouse cursor) over a UI element without clicking or pressing a key. For example, a hover event is triggered when the cursor 212 enters the boundary of a Ul element and a time threshold is met. In some examples, input device 233 may not have hover functionality, and an alternative interaction (such as a long press action on a UI element on a touchscreen) is detected as a hover event.
[0020]
[0029] As shown in Figure 2A, a first hover event is detected in relation to the application icon 206, and a quick action card 111 for the application 118 corresponding to the application icon 206 is generated and displayed. In some examples, the quick action card 111 expands from the sidebar 210 adjacent to the application icon 206. For example, when the user hovers or pauses the cursor 212 within the boundary 213 of the application icon 206, a set of quick actions 116 corresponding to the selected application 118 is incorporated into the quick action card 111, where the quick actions 116 are linked to executable actions 110, which are handled by the web browser 202 to cause the application 118 to perform the application function 112.
[0021]
[0030] One exemplary type of executable action 110 is a redirect uniform resource locator (e.g., URL) action. For example, a redirect URL action includes executable code or instructions that, when executed or enforced, cause the web browser 202 to navigate to a web page having a web address (e.g., URL) specified in the code. Another type of executable action 110 is an event action, which includes executable code or instructions that, when executed or enforced, cause the web browser 202 to perform an operation that triggers an event handled by the application 118. In some examples, the code or instructions, when executed, cause the browser to construct a call to an application programming interface (API) that interacts with the application 118 to perform a function. For example, a “Launch Desktop Application” action event bound to a quick action 116 may include executable code or instructions that cause the web browser 202 to trigger an operation in the application 118 for launching (e.g., activation or reactivation). Furthermore, a “Play Media” action event, similarly bound to the quick action 116, may include executable code or instructions that trigger the web browser 202 to perform an operation to execute a desired application function 112 in the application 118, which starts playback of a media item.
[0022]
[0031] Quick Actions 116 can be predefined or custom configured for an application 118. For example, Quick Actions 116 for a word processing application 118 may correspond to creating a new word processing document, opening an existing word processing document, or another word processing application function 112, while Quick Actions 116 for a communication application 118 may correspond to various functions 112 provided by the communication application 118, such as creating a new message, responding to a message, creating a new event, or another communication function or scheduling function 112. In response to a selection event of a Quick Action 116 presented on the Quick Action Card 111, the web browser 202 executes the corresponding executable action (e.g., a URL action or an event action). In a further example, the user uses an input device 233 to move the cursor 212 outside the boundaries 213 of the application icon 206 or the Quick Action Card 111, and when this is detected, the Quick Action Card 111 is closed and the Quick Action 116 is removed from view.
[0023]
[0032] The example quick action card 111 in Figure 2A is shown in a menu custom view 122, where a set of quick actions 116 are presented as a list of selectable options (e.g., UI element 108). In some examples, the menu custom view 122 is typically used in connection with the presentation of quick actions 116 for a productivity application 118. In the illustrated example, the application 118 corresponding to the first hover icon 206a is a suite of productivity applications, and the quick actions 116 contained in the quick action card 111 include a first quick action 116a corresponding to an actionable action 110 for the first productivity application in the application suite (e.g., creating a new document in the word processing application), a second quick action 116b corresponding to an actionable action 110 for the second productivity application in the application suite (e.g., creating a new spreadsheet in the spreadsheet application), and a third quick action 116c corresponding to an actionable action 110 for the third productivity application in the application suite (e.g., creating a new presentation in the presentation application).
[0024]
[0033] Referring here to Figure 2B, an exemplary user selection of the first quick action 116a presented on the quick action card 111 is shown. For example, the user moves the cursor 212 on the screen within the boundaries of the first quick action 116a and clicks or otherwise selects the first quick action 116a. If the first quick action 116a is bound to a URL action, in response to the selection, the web browser 202 redirects to the web page corresponding to the specified URL. As an example, referring here to Figure 2C, URL 217 corresponds to the web page of the first application (e.g., word processing application 232) of the productivity application suite associated with the first quick action 116a. For example, the web page corresponding to URL 217 provides the UI of the word processing application 232 (web processing application UI 215), which is displayed in the primary display area 220 of the web browser UI 205. For example, the URL may further provide a new word processing document 234, which is then displayed in the word processing application UI 215.
[0025]
[0034] Continuing with the example, and referring to Figure 2D, in response to the detection of a second hover event on the second icon 206b, dynamic quick actions 116d-116e corresponding to the application 118 of the second icon 206b are presented to the user on screen 208. For example, the second icon 206b corresponds to a mail and calendar application that provides functions 112 for managing email, calendar, contacts, tasks, etc. In response to the hover selection of the second icon 206b, a corresponding quick action card 111 is generated and displayed. As shown in the figure, multiple quick actions 116d-116e corresponding to executable actions for the mail and calendar application are incorporated into the quick action card 111 presented in the menu custom view 122, and the user selects a fourth quick action 116d. In response to the selection, the web browser 202 executes an executable action 110 linked to the selected fourth quick action 116d. For example, referring to Figure 2E, the application 118 associated with the fourth quick action 116d (e.g., the mail and calendar application 242) is opened, and its associated UI (mail and calendar application UI 225) is displayed in the web browser UI 205.
[0026]
[0035] In some examples, as shown in Figure 2E, selecting a quick action 116 displays the UI of the selected application 118 (e.g., the Mail and Calendar application UI 225) in a sidebar pane 250 that expands from the sidebar 210. For example, a fourth quick action 116d is associated with an event action, and in response to the selection, the web browser 202 executes the code or instructions contained in the executable action 110 bound to the fourth quick action 116d. In some examples, each executable action 110 is bound to one or more event handlers in the application 118 that are invoked in response to the selection of the corresponding quick action 116. When executed by the web browser 202, a communication is sent to the application 118 that triggers the application 118 to perform the operation that handles the quick action 116. For example, an executable action 110 bound to the fourth quick action 116d allows the web browser 202 to construct and send an API request containing instructions (e.g., an API endpoint and associated parameters), configuring application 18 to process and perform operations to provide one or more application functions 112 (e.g., launching the mail and calendar application 242, creating a new email 254). As shown in Figure 2E, the new email 254 is displayed in the mail and calendar application UI 225 shown in the sidebar pane 250. While interacting with the mail and calendar application 242, the user can also use the web browser 202 to perform other tasks on the computing device 204, such as creating a new word processing document 234 displayed in the primary display area 220 of the web browser UI 205.In some examples, the sidebar pane 250 is positioned next to the primary display area 220, and activating the sidebar pane 250 causes the primary display area 220 to shrink so that the sidebar pane 250 does not obscure the content displayed in the primary display area 220 (for example, a webpage providing a word processing application UI 215). In other examples, the sidebar pane 250 is provided as an overlay in front of at least a portion of the primary display area 220.
[0027]
[0036] In a further example, referring here to Figure 2F, the Quick Action Card 111 may also be displayed in the Mini-Controller Custom View 166. In the Mini-Controller Custom View 166, a set of Quick Actions 116g~k (collectively referred to as Quick Action 116) are presented as selectable control functions, allowing the user to control the audio and / or video playback functions 112 of the corresponding application 118. The Mini-Controller Custom View 166 is used for an application 118 such as a media player application 252, allowing the user to quickly control the playback of audio and / or video content by selecting a Quick Action 116, opening the media player application 252 and then selecting a control function without requiring multiple user interactions. In some examples, a set of Quick Actions 116g~k within the Mini-Controller Custom View 166 is bound to a set of event actions, and the selection of a Quick Action from that set causes the web browser 202 to execute an executable action 110 linked to the selected Quick Action. For example, event actions may correspond to playback, pause, stop, fast forward and rewind, volume, shuffle and repeat options, content selection, and / or control of other functions 112 of the media player application 252. In some examples, the media player application 252 includes event handlers programmed to handle triggers received in response to executable actions 110 performed by the web browser 202.
[0028]
[0037] While exemplary examples of quick action cards 111 have been described, Figure 3 shows an exemplary system 300 for dynamically generating quick actions 116 for an application 118 in a web browser 202. The web browser 202 runs on a client computing device 204. Examples of client computing devices 204 include personal computers (PCs), mobile devices (e.g., smartphones, tablets, laptops, personal digital assistants (PDAs)), wearable devices (e.g., smartwatches, smart eyewear, fitness trackers, smart wear, body-mounted devices, head-mounted displays), gaming consoles or devices, and Internet of Things (IoT) devices. The web browser 202 includes web browsing and display functions that control the retrieval and display of web pages from a remote source, such as a web server 312. One or more web servers 312 provide one or more web-based applications 118 that can be accessed and controlled through interaction with the web browser 202. The web browser 202 further includes a quick action controller 310 that controls the registration of quick actions 116 and the generation and display of quick actions 116 on quick action cards 111. The quick action controller 310 is a set or subset of computing code that causes or controls some of the operations discussed herein relating to the generation of dynamic quick actions 116 for display on quick action cards 111 in the web browser 202.
[0029]
[0038] In some examples, the quick action controller 310 controls the display of quick actions 116 by using configuration data contained in the quick action manifest 102. The quick action manifest 102 is a file or set of code, such as JavaScript Object Notation (JSON) data, that defines the configuration of the quick action card 111 for application 118 and the quick actions 116 to be displayed on the quick action card 111. For example, the quick action manifest 102 may be provided by the developer team project manager of application 118 and received by the server 304. The server 304 stores, manages, and distributes the quick action manifest 102. In some examples, the web server 304 receives the quick action manifest 102 and distributes it to the manifest distribution service 314 and / or client computing devices 204 via the content distribution network 306 within a minimum timeframe. For example, the quick action manifest 102 may be pushed to devices automatically or as part of a scheduled batch update process.
[0030]
[0039] In some examples, the configuration information in the Quick Action Manifest 102 specifies a custom view 104 (e.g., a menu custom view 122 or a minicontroller custom view 166) that defines the structure and style of the Quick Action Card 111 for the application 118, and the Quick Action 116 presented in the Quick Action Card 111. In some examples, the specified custom view 104 provides a consistent structure for organizing and displaying the Quick Action 116. For example, the custom view 104 includes placeholders for various UI elements 108 such as buttons, text fields, sliders, toggle switches, dropdown lists, labels, progress indicators, icons, and status indicators. One or more UI elements 108 within the specified custom view 104 are mapped to one or more defined Quick Actions 116 and act as interactive elements that allow the user to interact with the corresponding functions 112 of the application 118.
[0031]
[0040] Each quick action 116 in the quick action manifest 102 defines an executable action 110 that specifies the behavior that the web browser 202 will perform in response to the selection of the associated UI element 108. Such an executable action 110 causes the application 118 to further perform the desired application function 112. As discussed above, exemplary executable actions 110 include URL actions and event actions. Thus, in some examples, the quick action manifest 102 specifies the URL 217 that the web browser 202 will navigate to when performing the corresponding URL action. In other examples, if the executable action is an event action, the quick action manifest specifies an event handler that is triggered when the UI element 108 associated with the quick action 116 is selected.
[0032]
[0041] In an exemplary implementation, system 300 includes an API 318 that defines a set of rules and protocols that enable a web browser 202 to communicate and interact with application 118. When an event action is triggered, an event handler initiates an API request to API 318, which processes the request and communicates instructions to application 118 to perform specific operations to implement the requested application function 112. In some examples, API 318 includes a set of endpoints that define the available operations for application 118 and their associated request / response formats.
[0033]
[0042] In some examples, the manifest 102 is handled or managed by the manifest distribution service 314. For example, the manifest distribution service 314 provides one or more manifests 102 to the web browser 202, and then the quick action controller 310 manages the manifests 102 and the corresponding quick action cards 111. In one example, the manifest distribution service 314 is called by the web browser 202 to retrieve the manifest 102 for a specific application 118.
[0034]
[0043] In the exemplary implementation, the quick action controller 310 includes a custom action builder 320, a hover card builder 330, and an event listener 340, which operate to take a manifest 102 and generate a custom quick action card 111 for the corresponding application 118 contained in the sidebar 210. The custom action builder 320 receives the manifest 102 fetched from the server 304, parses the manifest 102, and compiles the quick action configuration contained in the manifest 102 into executable actions 110 (e.g., URL actions and / or event actions) that can be executed by the web browser 202 to control the functions 112 of the application 118.
[0035]
[0044] The event listener 340 monitors user interaction to determine whether to display or close the quick action card 111. One exemplary user interaction that the event listener 340 listens for is a "cursor enter," in which case the cursor 212 on the screen is detected within the boundary 213 of the application icon 206 in the sidebar 210. When the cursor 212 is monitored within the boundary 213 of the application icon 206, the event listener 340 starts a timer. In some examples, if the cursor 212 remains within the boundary 213 of the application icon 206 for at least a time threshold (e.g., 600 milliseconds) without selecting the application icon 206 (e.g., by a mouse click or a tap on a touchscreen), a hover event is triggered. When the event listener 340 determines that a hover event has been triggered, it notifies the hover card builder 330 to display the quick action card 111 for application 118 near the application icon 206. In the exemplary implementation, the hover card builder 330 binds the executable actions defined in the quick action manifest 102 to a specified custom view 104 (for example, a menu custom view 122 or a minicontroller custom view 166) and generates a display quick action card 111 according to the information received from the event listener 340.
[0036]
[0045] In some examples, binding an executable action 110 to a custom view 104 triggers a data request to application 118 to obtain application information for generating a quick action card 111. For example, one or more quick actions 116 defined in a quick action manifest 102 may be dynamic and present information that is updated to display real-time or live data to the user based on updates provided by application 118. As an example, a first dynamic quick action 116 for a media player application 118 displayed in a minicontroller custom view 166 may contain information about the current or next song in the user's music playlist, and a second dynamic quick action 116 may contain a slider that visually represents the current time position of the song. Information about the current or next song and the current time position is obtained from application 118 to update the display of the UI elements of the first and second quick actions 116 in the quick action card 111.
[0037]
[0046] In a further example, dynamic quick actions 116 are personalized to the user. For instance, a dynamic quick action 116 for an application 118 might be linked to a feature 112 of the application 118 that the user frequently uses. Information about the frequently used feature 112 is retrieved from the application 118 and used to determine which quick actions 116 to include in the quick action card 111. For example, a user might use a game application 118 to play two specific games out of several. Therefore, when binding an actionable action 110 to a custom view 104 to generate a quick action card 111, the hover card builder 330 can request a list of the top few (e.g., two) games the user plays most frequently, and then incorporate two quick actions 116 corresponding to those two specific games into the quick action card 111. In another example, dynamic quick actions 116 could be generated to respond to a recently received communication, open a recently edited document, or accept or decline a recently received calendar invitation.
[0038]
[0047] Another exemplary user interaction that the event listener 340 listens for is a "cursor exit," in which the cursor 212 is monitored outside the boundary 213 of the hovered application icon 206 or quick action card 111. When the cursor 212 is monitored outside the boundary 213 of the hovered application icon 206 or quick action card 111, the event listener 340 notifies the hover card builder 330 to close the displayed quick action card 111.
[0039]
[0048] In a further example, the event listener 340 listens for selection user interactions and receives events representing user selections made via the user input device 233 (e.g., mouse clicks, touch inputs on a touchscreen). For example, the event includes information about the selection, including the coordinates of the cursor 212 on the screen 208. When a selection of a quick action 116 is detected, the event listener 340 notifies the web browser 202 to perform the executable action 110 linked to the selected quick action 116.
[0040]
[0049] Figure 4 shows an exemplary method 400 for dynamically generating a quick action 116 for application 118, according to an example of the present disclosure. The operations of method 400 may be performed by a web browser 202, or by a computing device 204 on which the web browser 202 operates. For example, some operations of method 400 are performed by a quick action controller 310 or a manifest delivery service 314. Operation 402 involves launching or running the web browser 202. For example, the web browser 202 is opened in response to a user selection in the web browser 202.
[0041]
[0050] In operation 404, the web browser 202 loads one or more applications 118 registered in the web browser 202 and / or the user profiles of users signed into the web browser 202. In some examples, loading applications 118 involves receiving a list of applications 118 and their respective application manifests from a manifest distribution service (e.g., manifest distribution service 314 or another manifest distribution service). Operation 404 further includes updating the web browser UI 205 based on the loaded applications 118. For example, application icons 206 corresponding to application 118 are displayed in the sidebar 210 of the web browser 202.
[0042]
[0051] Operation 406 receives a Quick Action Manifest 102 for each of the one or more registered applications 118. In some implementations, Operation 406 may be included in Operation 404, and the Quick Action Manifest 102 is retrieved when the application manifest is received. Each received Quick Action Manifest 102 contains configuration data for the Quick Actions 116, as discussed above. For example, the configuration information defines a custom view 104 for presenting the Quick Actions 116 on a Quick Action Card 111 and executable actions 110 linked to each Quick Action 116.
[0043]
[0052] In operation 408, the event listener 340 listens for user interaction with the application icon 206 of the application 118 presented in the sidebar 210. In decision operation 410, it is determined whether a "cursor in" user interaction with the application icon 206 has been detected. For example, if the user moves the cursor 212 within the boundary 213 of the application icon 206 in the sidebar 210 and a "cursor in" user interaction is detected, method 400 proceeds to operation 412 and the timer starts. If no "cursor in" user interaction with the application icon 206 is detected, the event listener 340 returns to operation 408 and continues listening for another user interaction event.
[0044]
[0053] In decision operation 414, a determination is made as to whether the time threshold is met and whether a hover event is triggered. For example, if the user's pointer 212 is within the boundary 213 of the application icon 206 for at least the time threshold, but no selection of the application icon 206 is received, it is determined to be a hover event with the application icon 206. If the time threshold is met and a hover interaction is determined, method 400 proceeds to operation 416. If the time threshold is not met, method 400 returns to operation 408.
[0045]
[0054] In operation 416, a quick action card 111 is generated, and the hover card builder 330 binds the executable actions 110 corresponding to a set of quick actions 116 defined in the corresponding quick action manifest 102 to a UI element 108 provided in a specified custom view 104. For example, the quick action manifest 102 specifies a menu custom view 122 or minicontroller custom view 166 for the quick action card 111, the executable actions 110, and other configuration properties of the quick actions 116. In some examples, the executable actions 110 are URL actions and / or event actions. In some implementations, information for generating the quick actions 116 is obtained from the application 118. For example, the quick actions 116 may be dynamic and linked to live application information, in which case the current application information is requested from the application 118 and used to determine which quick actions 116 are included in the quick action card 111 and / or to display the properties of the quick actions 116 in the quick action card 111.
[0046]
[0055] In operation 418, the hover card builder 330 renders a quick action card 111 to the web browser UI 205, which includes a UI element 108 representing a quick action 116 defined in the quick action manifest 102. The quick action 116 is presented as a selectable UI element according to the custom view 104 defined in the quick action manifest 102. For example, the quick action card 111 may be presented in a menu custom view 122 or a minicontroller custom view 166 to display various selectable quick actions 116 linked to various application functions 112.
[0047]
[0056] In decision operation 420, it is determined whether a "cursor out" user interaction with the application icon 206 or the quick action card 111 has been detected. For example, if the user moves the cursor 212 outside the boundary 213 of the application icon 206 or the quick action card 111, a "cursor out" user interaction is detected, and method 400 proceeds to operation 422. In operation 422, the quick action card 111 is removed from the display.
[0048]
[0057] If no "cursor out" user interaction with the application icon 206 or quick action card 111 is detected, method 400 proceeds to decision operation 424 to determine whether a selection of quick action 116 has been received. If no selection of quick action 116 has been received, method 400 returns to decision operation 420 to determine whether a "cursor out" user interaction with the application icon 206 or quick action card 111 has been detected. Alternatively, if it is determined that a selection of quick action 116 has been received, method 400 proceeds to operation 426, where the executable action 110 bound to the selected quick action 116 is executed by the web browser 202. For example, if the executable action 110 is a URL action, the web browser 202 navigates to the specified URL 217 associated with application 118, and the web page corresponding to the specified URL 217 is displayed in the primary display area 220 of the web browser UI 205. When the executable action 110 is an event action, an event handler is triggered, which causes the web browser 202 to initiate an API request. The API request instructs the application 118 to perform a specific operation that provides an application function 112 corresponding to the selected quick action 116. For example, the application 118 may open a new document, create a new message, create a new calendar event, respond to a message or calendar invitation, open a specific document, control the playback of a media content item, or perform another application function 112. In some examples, in response to an event action, the web browser 202 opens a sidebar pane 250 and provides the UI of the application 118 to the sidebar pane 250, which allows the user to interact with the application 118 through the web browser 202.
[0049]
[0058] Figure 5 and the related description provide a discussion of various operating environments in which examples of the present invention can be put into practice. However, the devices and systems illustrated and discussed with respect to Figure 5 are for illustrative purposes only and do not limit the numerous computing device configurations that can be used to put into practice the aspects of the present invention described herein. Figure 5 is a block diagram showing the physical components (i.e., hardware) of a computing device 500 in which examples of the present disclosure can be put into practice. The computing device components described below may be suitable for a client device running the web browser discussed above. In a basic configuration, the computing device 500 may include at least one processing unit 502 and system memory 504. The processing unit (e.g., processor) may also be called a processing system. Depending on the configuration and type of computing device, the system memory 504 may comprise, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of such memories. The system memory 504 may include an operating system 505 and one or more program modules 506 suitable for running software applications 550 (e.g., a web browser 202 and a quick action controller 310).
[0050]
[0059] For example, an operating system 505 may be suitable for controlling the operation of the computing device 500. Furthermore, aspects of the present invention may be practiced in conjunction with a graphics library, another operating system, or any other application program, and are not limited to any particular application or system. This basic configuration is shown in Figure 5 by the components within the dashed line 508. The computing device 500 may have additional features or functions. For example, the computing device 500 may include additional data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or tapes. Such additional storage is shown in Figure 5 by a removable storage device 509 and a non-removable storage device 510.
[0051]
[0060] As described above, the system memory 504 may store a number of program modules and data files. While running on the processing unit 502, the program module 506 may perform a process that includes, but is not limited to, one or more operations in the manner shown in Figure 4. Other program modules that may be used according to examples of the present invention may include applications such as email and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs.
[0052]
[0061] Furthermore, examples of the present invention may be implemented on an electrical circuit including discrete electronic elements, a packaged or integrated electronic chip including logic gates, a circuit utilizing a microprocessor, or on a single chip including electronic elements or a microprocessor. For example, examples of the present invention may be implemented by a system-on-a-chip (SOC), in which case each or many of the components shown in Figure 5 may be integrated into a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communication units, system virtualization units, and various application functions, all of which are integrated (or "burned into") a chip substrate as a single integrated circuit. When operating by an SOC, the functions described herein with respect to the proposed query generation may be operated by application-specific logic integrated together with other components of the computing device 500 on a single integrated circuit (chip). Examples of the present disclosure may also be implemented using other techniques capable of performing logical operations such as AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum techniques.
[0053]
[0062] The computing device 500 may also have one or more input devices 512, such as a keyboard, mouse, pen, voice input device, or touch input device. Output devices 514, such as a display, speaker, or printer, may also be included. The devices described above are examples, and other devices may be used. The computing device 500 may include one or more communication connections 516 that enable communication with other computing devices 518. Suitable communication connections 516 include, but are not limited to, RF transmitters, receivers, and / or transceiver circuits, Universal Serial Bus (USB), parallel ports, and / or serial ports.
[0054]
[0063] As used herein, the term "computer-readable medium" may include computer storage medium. Computer storage medium may include volatile and non-volatile removable and non-removable media implemented in any method or technique for storing information such as computer-readable instructions, data structures, or program modules. System memory 504, removable storage device 509, and non-removable storage device 510 are all examples of computer storage medium (i.e., memory storage). Computer storage medium may include RAM, ROM, electrically erasable programmable read-only memory (EEPROM), flash memory, or other memory technologies, CD-ROM, digital versatile disk (DVD), or other optical storage, magnetic cassette, magnetic tape, magnetic disk storage, or other magnetic storage devices, or any other manufactured article that can be used to store information and can be accessed by computing device 500. Any such computer storage medium may be part of computing device 500. Computer storage medium does not include carrier waves or other propagated data signals.
[0055]
[0064] Communication media include any information distribution medium, which may be embodied by computer-readable instructions, data structures, program modules, or other data within a modulated data signal, such as carrier waves or other transmission mechanisms. The term “modulated data signal” can refer to a signal having one or more characteristics that are set or modified to encode information within the signal. By example, but not limited to, communication media may include wired media such as wired networks or direct wired connections, as well as wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
[0056]
[0065] In one embodiment, the present technology relates to a computing system for generating dynamic quick actions for an application, comprising at least one processor and memory for storing instructions, wherein when an instruction is executed by at least one processor, the computing system causes the computing system to perform the following actions: display an icon for the application in the sidebar of a web browser; detect hover events associated with the icon; bind an executable action to a user interface element based on configuration information received in a quick action manifest for the application; display a user interface element representing the quick action in a quick action card near the icon; receive a selection of a user interface element; and execute the executable action bound to the selected user interface element to perform the application function corresponding to the represented quick action.
[0057]
[0066] In some examples, an executable action is a Uniform Resource Locator (URL) action containing executable code to navigate to a specified URL of a web page. In further examples, an executable action is an event action containing executable code to instruct an application to perform an operation that performs a function. In yet another example, the executable action is an event action, and the instruction causes the system to make an API call to the application's application programming interface (API). In yet another example, the instruction causes the system to open and serve the application's user interface in the web browser's sidebar pane. In yet another example, the instruction further causes the system to retrieve information from the application and perform at least one of the following: present the retrieved information in a quick action card, or use the retrieved information to determine the display properties of a user interface element representing a quick action. In yet another example, the instruction further causes the system to receive a quick action manifest, which defines multiple quick actions corresponding to multiple functions of the application.
[0058]
[0067] In one embodiment, the present technology relates to a computer implementation method for generating dynamic quick actions for an application, the method comprising: receiving a quick action manifest that defines quick actions corresponding to the functionality of the application, the application being represented by an icon in the sidebar of a web browser, detecting a hover event associated with the icon, binding the executable action defined in the quick action manifest to a user interface element representing a quick action in a quick action card, displaying the quick action card and the user interface element, receiving the selection of a user interface element, and executing the executable action bound to the selected user interface element to perform the functionality of the application.
[0059]
[0068] In some examples, loading a custom view for a Quick Action Card before binding an execution action to a user interface element is included, and the custom view is specified in the Quick Action manifest. In additional examples, loading a custom view includes loading a menu custom view or a minicontroller custom view. In further examples, binding an executable action defined in the Quick Action manifest to a user interface element includes binding a Uniform Resource Locator (URL) action to a user interface element, and the URL action includes the URL of a web page. In further examples, executing an executable action bound to a selected user interface element includes navigating to the web page of the URL included in the URL action. In further examples, binding an executable action defined in the Quick Action manifest to a user interface element includes binding an Event action to a user interface element, and the Event action includes executable code to perform an application function. In further examples, executing an executable action includes executing executable code. In further examples, executing executable code includes initiating an Application Programming Interface (API) request that is communicated to the application to instruct it to perform an application function. In further examples, performing an executable action includes causing the application to open and provide the application's user interface in the web browser's sidebar pane. In further examples, causing the display of quick action cards and user interface elements includes retrieving information from the application and presenting the retrieved information in a quick action card, or using the retrieved information to determine the display properties of a quick action.In a further example, a quick action manifest defines multiple quick actions corresponding to multiple functions of an application, and the display of quick action cards and user interface elements involves retrieving information from the application and using that information to determine one or more of the multiple quick actions to include in the quick action card.
[0060]
[0069] In one embodiment, the technology relates to a computer implementation method for generating dynamic quick actions for an application, the method comprising: displaying a sidebar in a web browser; displaying an icon for the application in the sidebar; receiving a quick action manifest for the application containing configuration information for a quick action associated with a function of the application; detecting hover events associated with the icon; applying the configuration information for a quick action to a custom view of a quick action card; binding the executable action contained in the configuration information to a user interface element in the custom view; displaying a quick action card containing the user interface element near the icon; receiving a selection of the user interface element; and executing an executable action to perform a function of the application. In some examples, the executable action is an event action containing executable code that instructs the application to perform an operation that causes the application to open and provide the user interface of the application in the sidebar pane of the web browser.
[0061]
[0070] For example, aspects of the present invention have been described above with reference to block diagrams and / or operational diagrams of methods, systems, and computer program products according to aspects of the present invention. Functions / operations described within a block may be performed in an order other than that shown in any flowchart. For example, two consecutively shown blocks may actually be executed substantially simultaneously, or, depending on the related functions / operations, blocks may sometimes be executed in reverse order. Furthermore, as used herein and in the claims, the phrase "at least one of element A, element B, or element C" is intended to represent element A, element B, element C, elements A and B, elements A and C, elements B and C, and any of elements A, B, and C.
[0062]
[0071] The descriptions and illustrations of one or more examples provided in this application are not intended in any way to limit or restrict the scope of the claimed invention. The embodiments, examples, and details provided in this application are deemed sufficient to adequately describe the invention and enable others to create and use the best mode of the claimed invention. The claimed invention should be construed as not being limited to any embodiments, examples, or details provided in this application. Various features (structural and methodological), whether illustrated and described in combination or individually, are intended to be selectively included or omitted to produce examples having a particular set of features. With the provision of the descriptions and illustrations in this application, a person skilled in the art can envision variations, modifications, and alternatives that fall within the spirit of broader embodiments of the general inventive concept embodied in this application, and these too do not deviate from the broader scope of the claimed invention.
Claims
1. A computing system for generating dynamic quick actions for applications, At least one processor (502), The system includes a memory (504) for storing instructions, and when the instructions are executed by the at least one processor, Displaying an icon (206) for the application (232) in the sidebar (210) of the web browser (202), Detecting hover events associated with the aforementioned icon, Based on the configuration information received in the quick action manifest (102) for the application, the executable action (110) is bound to the user interface element (108), Near the aforementioned icon, the user interface element representing the quick action (116) is displayed within the quick action card (111), Receiving the selection of the aforementioned user interface element, To perform the executable action bound to the selected user interface element, thereby implementing the application's function corresponding to the represented quick action. The computing system is made to perform this task. Computing system.
2. The system according to claim 1, wherein the executable action is a uniform resource locator (URL) action that includes executable code for navigating to a specified URL of a web page.
3. The system according to claim 1, wherein the executable action is an event action that includes executable code for instructing the application to perform an operation that causes the function to be performed.
4. The system according to claim 3, wherein the executable action is an event action, and the instruction causes the system to make an API call to the application programming interface (API) of the application.
5. The system according to claim 3, wherein the command causes the system to open and provide the user interface of the application in the sidebar pane of the web browser.
6. The aforementioned instruction, Obtaining information from the aforementioned application, To present the acquired information on the quick action card, or Using the acquired information, determine the display properties of the user interface element representing the quick action. To implement at least one of the following: The system according to claim 1, wherein the system further performs the above.
7. The system according to claim 1, wherein the instruction further causes the system to receive the quick action manifest, and the quick action manifest defines a plurality of quick actions corresponding to a plurality of functions of the application.
8. Computer implementation method (400) for generating dynamic quick actions for an application, Receiving a quick action manifest that defines quick actions corresponding to the functionality of an application, the application being represented by an icon in the sidebar of a web browser, (406) Detecting a hover event associated with the aforementioned icon (410), Binding the executable action defined in the Quick Action Manifest to a user interface element representing the Quick Action in the Quick Action Card (416), To display the aforementioned quick action card and the aforementioned user interface elements (418), Receiving the selection of the user interface element (424), (426) To execute the executable action bound to the selected user interface element and to perform the function of the application. Computer implementation method (400), including.
9. The method according to claim 8, comprising loading a custom view of the quick action card before binding the execution action to the user interface element, wherein the custom view is specified in the quick action manifest.
10. The method according to claim 8, wherein binding the executable action defined in the quick action manifest to the user interface element includes binding a uniform resource locator (URL) action to the user interface element, the URL action includes the URL of a web page.
11. The method of claim 8, wherein binding the executable action defined in the quick action manifest to the user interface element includes binding an event action to the user interface element, and the event action includes executable code for performing the function of the application.
12. To cause the display of the Quick Action Card and the User Interface Elements to be performed, Obtaining information from the aforementioned application, To present the acquired information on the quick action card, or The method according to claim 8, further comprising determining the display properties of the quick action using the acquired information.
13. The aforementioned quick action manifest defines multiple quick actions corresponding to multiple functions of the application, To cause the display of the Quick Action Card and the User Interface Elements to be performed, Obtaining information from the aforementioned application, Using the acquired information, determine one or more of the multiple quick actions to be included in the quick action card. The method according to claim 8, including the method described in claim 8.
14. Computer implementation method (400) for generating dynamic quick actions for an application, Displaying a sidebar within the web browser (404), Displaying application icons in the aforementioned sidebar (404), Receiving a quick action manifest for the application, which includes configuration information for quick actions associated with the functionality of the application (406), Detecting a hover event associated with the aforementioned icon (410), Applying the configuration information for the quick action to the custom view of the quick action card (416), Binding the executable actions included in the configuration information to the user interface elements in the custom view (416), Displaying the quick action card containing the user interface elements near the icon (418), Receiving the selection of the user interface element (424), (426) To perform the executable action for carrying out the function of the application Computer implementation method (400), including.
15. The method according to claim 14, wherein the executable action is an event action comprising executable code for instructing the application to perform an operation that causes the application to open and provide the user interface of the application in the sidebar pane of the web browser.