Dynamically configured fast action in sidebar

By dynamically generating a fast action system in the web browser interface, the access to application functions is simplified, the complex problem of function access in the prior art is solved, the user experience and function discoverability are improved, and it is suitable for various user groups.

CN119225573APending Publication Date: 2024-12-31MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310799526.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-30
Publication Date
2024-12-31

AI Technical Summary

Technical Problem

The functional access of existing applications is complex and requires multiple users to interact, resulting in increased task completion time, reduced function discoverability, and poor user experience, especially inconvenience for disabled or disabled users.

Method used

By dynamically generating a fast action system in the web browser interface, users can select a fast action card in the sidebar by hovering the application icon, directly calling the application function, and reducing user interaction steps.

Benefits of technology

Improves the accessibility and operability of application functions, simplifies the task completion process, improves the user experience, especially for repetitive and time-sensitive tasks, reduces the user's sense of effort, and is suitable for disabled or disabled users.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119225573A_ABST
    Figure CN119225573A_ABST
Patent Text Reader

Abstract

Systems and methods for generating dynamic fast actions for applications in a web browser. The dynamic fast action corresponds to various functions of an application accessible via a web browser sidebar interface. When a hover event associated with the icon of the application is detected, a fast action card is generated that includes fast actions of the application from which the user can select. For example, selection of a quick action triggers the web browser to run an action that causes the application function to be performed. Thus, application functions can be surfaced and controlled via a single input device selection (e.g., mouse click).
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Applications are designed to help users perform various tasks and provide a user interface with which application users interact. Access to functions that such applications can perform may be difficult to identify or locate. For example, access to application functions may be located within a menu or other hierarchical structure that typically requires multiple user interactions (e.g., mouse clicks, touch gestures, voice commands) to access. Requiring multiple user interactions to access application functions increases the time to complete tasks and further hinders the discoverability of application functions, which limits the utilization of the functions and the operability of the application.

[0002] It is with respect to these and other considerations that examples are provided. Additionally, although relatively specific issues have been discussed, it should be understood that the examples should not be limited to solving the specific issues identified in the context. Summary of the invention

[0003] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features 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.

[0004] The present technology relates to systems and methods for dynamically generating quick actions for applications, which operate as shortcuts to actions performed in applications from a web browser interface. In some examples, the quick actions correspond to common application functions, such as creating a new document, controlling a media player, etc. In further examples, the quick actions are dynamic and can change based on specific application data (e.g., real-time data) or other conditions. For example, a quick action can correspond to the last accessed document, the most recently received communication, a calendar invitation, the playback status of a media item, etc. The quick action is presented in a quick action card displayed in response to a hover event of an icon of the application. In an example implementation, the icon is included in a sidebar displayed on one side of the web browser interface.

[0005] Based on moving and pausing the cursor over an application icon, quick action cards may be dynamically generated and presented. For example, a "click" selection via an input device is not required to trigger display of a quick action card. Thus, the user is provided with the ability to select a desired quick action via a single "click" selection to invoke a desired application action. The quick actions provide efficient access to specific application functionality through a sidebar interface while limiting potential blocking effects that would otherwise hinder interaction with a web browser.

[0006] The details of one or more aspects are set forth in the accompanying drawings and descriptions below. Other features and advantages will be apparent from reading the following detailed description and consulting the related drawings. It should be understood that the following detailed description is only illustrative and not limiting of the claimed invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The present disclosure is illustrated by way of the accompanying drawings, in which like reference numerals indicate like elements. The elements in the accompanying drawings are illustrated for simplicity and clarity and are not necessarily drawn to scale.

[0008] Figure 1 is a diagram of example components for dynamically generating quick actions for applications for display in a quick action card according to examples of the present disclosure;

[0009] Figure 2A is an illustration of a first example quick action card including a quick action for an application according to examples of the present disclosure;

[0010] Figure 2B is a diagram illustrating an example of an embodiment of the present disclosure. Figure 2A an illustration of a selection of a first quick action in a first example quick action card;

[0011] Figure 2C is a diagram depicting an example of an embodiment of the present disclosure in response to Figure 2B an illustration of example actions performed in response to selection of a first quick action;

[0012] Figure 2D is an illustration of a selection of a second quick action from a second example quick action card according to an example of the present disclosure;

[0013] Figure 2E is a diagram depicting an example of an embodiment of the present disclosure in response to Figure 2D an illustration of another action performed in response to selection of a second quick action;

[0014] Figure 2F is a diagram depicting a third example quick action card presented in a mini-controller custom view according to examples of the present disclosure;

[0015] Figure 3 is a diagram showing an example system in which dynamic generation of quick actions for an application is implemented according to examples of the present disclosure;

[0016] Figure 4 is a flow chart depicting an example method of dynamically generating quick actions for an application according to examples of the present disclosure;

[0017] Figure 5is a block diagram illustrating example physical components of a computing device with which aspects of the present disclosure may be practiced. DETAILED DESCRIPTION

[0018] The following detailed description refers to the accompanying drawings. Where possible, the same reference numerals are used in the drawings and the following description to refer to the same or similar elements. Although various aspects of the present technology can be described, modifications, adaptations and other implementations are possible. For example, the elements illustrated in the drawings can be replaced, added or modified, and the methods described in this article can be modified by replacing, reordering or adding stages to the disclosed methods. Therefore, the following detailed description does not limit the present technology, but the proper scope of the present technology is defined by the attached claims. Examples can take the form of hardware implementation, or complete software implementation, or a combination of software and hardware implementations. Therefore, the following detailed description should not be considered restrictive.

[0019] In an example implementation, a web browser includes a frame that exposes a web-based application (referred to herein as an "application") that is launched within the web browser. The frame provides a sidebar interface (referred to herein as a "sidebar") in which icons corresponding to the applications are displayed. Typically, a user can select an icon to open the corresponding application in the web browser, and then select a desired application function within a menu located in the application interface. That is, accessing the desired function of the application requires multiple user interactions to access. For example, if a user is using a mouse as an input device to access a particular application function, the user can first click on the icon of the application to open the application, and then click through the hierarchical menu to access the desired function.

[0020] As discussed above, this can limit the ability to fully explore and exploit the functionality of an application and can result in various application features being underutilized. In addition, requiring multiple user interactions to access application functionality can increase the processing resources required to complete a task. For example, each user interaction requires additional processor and display cycles. The requirement for multiple interactions can also reduce interactive performance, making the overall user experience inefficient, which can be a problem for repetitive and / or time-sensitive tasks. In addition, user frustration can result from perceived inefficiency and / or the additional effort required to complete a task, which can negatively impact user satisfaction and result in reduced use of the application. In addition, excessive user interactions can present challenges to disabled or handicapped users. For example, users with motor skill limitations or visual impairments may have difficulty navigating multiple user interactions.

[0021] Examples described in the present disclosure relate to a quick action controller that provides dynamic quick actions corresponding to various application functions in quick action cards. In an example implementation, when a cursor on a screen is detected (e.g., controlled by a user via an input device or a touch screen) hovering or pausing (or long pressing) over an icon displayed in a sidebar, the quick action controller generates a quick action card that includes quick actions for applications corresponding to the hovered icons from which the user can select. The quick actions are selectable. Selection of a quick action triggers a web browser to process an action (referred to herein as an executable action) linked to the selected quick action, wherein processing the action results in the application function being performed.

[0022] Reference now Figure 1 In an example, executable actions 110a-110c (collectively referred to as executable actions 110) for a set of quick actions 116a-116c (collectively referred to as quick actions 116) are defined for an application 118 in a quick action list 102 provided by a provider of the application 118 and stored on a server. When a quick action controller generates a quick action card 111 for the application 118, the quick action list 102 corresponding to the application 118 is obtained from the server and processed. For example, the quick action controller links configuration information defined in the quick action list 102 to user interface (UI) elements 108a-108i (collectively referred to as UI elements 108) and other placeholders included in a custom view 104 of the quick action card 111. The example configuration information may define the type of the custom view 104 (e.g., a menu custom view 122 or a mini controller custom view 166), a title 105 and an icon 107 to be displayed in the quick action card 111, and one or more quick actions 116. For each quick action 116, the quick action list 102 can define various configuration properties of the quick action 116, including properties such as a title 106a-106c (collectively, title 106) provided in the defined custom view 104 to represent the quick action 116, if applicable, the type of UI element 108 (e.g., button, slider, toggle switch, label, progress indicator, icon, status indicator) for display in association with the UI element 108, and executable actions 110a-110c (collectively, executable actions 110) bound to the UI element 108. For example, selection of a quick action 116 triggers an executable action 110 linked to the selected quick action 116, wherein processing the executable action 110 causes the application function 112 to be executed.

[0023] In an example, the quick actions 116 are configurable by the application provider. For example, updates to the quick actions 116 are pushed to the server and obtained by the quick action controller to generate quick actions 116 reflecting the updates. The quick actions 116 enable users to easily discover application functions 112 and complete tasks via the use of such functions 112 in a fast, intuitive, and efficient manner.

[0024] Reference now Figure 2A , depicting an example quick action card 111. For example, the quick action card 111 includes a plurality of quick actions 116a-116c (collectively referred to as quick actions 116) for launching an application 118 within a web browser 202. The quick actions 116 provide a user with quick access to the functionality 112 of the application within the web browser 202. The web browser 202 executes on a client computing device 204 and allows a user to access and view websites and web pages via one or more networks. The web browser 202 provides a UI (web browser UI 205) that is displayed on a screen 208 of the client computing device 204. The web browser UI 205 includes various features of the web browser 202 and enables a user to navigate through different websites, interact with web-based applications (e.g., application 118), perform tasks, access various types of content (such as text, images, video, etc.), transmit information, manipulate data, etc.

[0025] As in Figure 2AAs shown in , the web browser UI 205 includes a main display area 220 and a sidebar 210. For example, the web browser 202 displays a web page in the main display area 220, and the sidebar 210 is located on one side of the main display area 220. Although depicted as being located on the right hand side of the main display area 220, in other examples, the sidebar 210 is positioned along the other side (e.g., the left hand side, the top, or the bottom) of the main display area 220. In the example, the sidebar 210 provides application icons 206a-206c (collectively referred to as icons 206) corresponding to the application 118. For example, the application 118 is associated with a remote service executed on one or more remote web servers. In one example, the application 118 includes one or a set of productivity applications (e.g., a word processing application, a spreadsheet application, a presentation application, a communication application, a note application), a game, a media player application, and / or other types of applications. In some examples, when a selection (e.g., a mouse click, a tap) of an application icon 206 is received, the sidebar pane is activated and extends from the sidebar 210. The sidebar pane displays content associated with the selected application 118 side by side with content displayed in the main display area 220. An example sidebar pane is shown in FIG. Figure 2E As depicted in and referred to below Figure 2E Give a description.

[0026] In the example, the user interacts with the web browser 202 and the application 118 using the input device 233 to move the cursor 212 displayed on the screen 208 of the client computing device 204. The input device 233 is also used to interact with and select UI elements included in the web browser UI 205 and the application UI. Some example input devices 233 include a mouse, a pen, a stylus, a touchpad, a touch screen, a microphone, an optical / magnetic sensor, a game pad, a joystick, a keyboard, etc. According to various examples, the input device 233 is used to make a selection of a UI element, such as by the user clicking a mouse button, tapping a touch screen, pressing a key, etc. to indicate its selection. For example, a mouse click, screen tap, key, etc. received via the input device 233 triggers a selection event.

[0027] According to various examples, a user can hover or pause a cursor 212 (e.g., a mouse cursor) over a UI element using an input device 233 without performing a click or key press. For example, a hover event is triggered when the cursor 212 enters the boundary of a UI element and a time threshold is met. In some examples, the input device 233 may not have hover capabilities, and alternative interactions (pressing and holding actions on UI elements on a touch screen) are detected as hover events.

[0028] As in Figure 2A , a first hover event associated with an application icon 206 is detected, and a quick action card 111 for an application 118 corresponding to the application icon 206 is generated and displayed. In some examples, the quick action card 111 is deployed from a sidebar 210 proximate to the application icon 206. For example, when a user hovers or pauses a cursor 212 within a border 213 of the application icon 206, a set of quick actions 116 corresponding to the selected application 118 are populated into the quick action card 111, wherein the quick actions 116 are linked to executable actions 110 and processed by the web browser 202 to cause the application 118 to perform the application function 112.

[0029] One example type of executable action 110 is a redirect uniform resource locator (e.g., URL) action. In one example, a redirect, URL action includes executable code or instructions that, when run or executed, drives the web browser 202 to navigate to a web page with a web address (e.g., URL) specified in the code. Another type of executable action 110 is an event action, wherein the event action includes executable code or instructions that, when run or executed, drives the web browser 202 to perform an operation that triggers an event processed by the application 118. In some examples, the code or instructions, when run, cause the browser to construct a call to an application programming interface (API), which interacts with the application 118 to perform a function. For example, a "wake up 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 to wake up (e.g., activate or reactivate). Additionally, a "play media" action event, also bound to a quick action 116, may include executable code or instructions that cause the web browser 202 to trigger operations in the application 118 to perform the desired application function 112 to initiate playback of the media item.

[0030] The quick actions 116 may be predefined or custom configured for the application 118. For example, the quick actions 116 for the word processing application 118 may correspond to creating a new word processing document, opening an existing word processing file, or another word processing application function 112, etc., while the quick actions 116 for the communication application 118 may correspond to different 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 or scheduling function 112. In response to a selection event of the quick action 116 presented in the quick action card 111, the web browser 202 performs a corresponding executable action (e.g., a URL action or an event action). In a further example, the user moves the cursor 212 outside the border 213 of the application icon 206 or the quick action card 111 using the input device 233, and when the cursor 212 is detected, it closes the quick action card 111 and removes the quick action 116 from the display.

[0031] exist Figure 2A 10 is depicted in a menu customization view 122, wherein a set of quick actions 116 are presented as a list of selectable options (e.g., UI elements 108). In the example, the menu customization view 122 is generally used in association with presenting the quick actions 116 for a productivity application 118. In the depicted example, the application 118 corresponding to the first hover icon 206a is an application suite of productivity applications, and the quick actions 116 included in the quick action card 111 include a first quick action 116a corresponding to an executable action 110 of a first productivity application of the application suite (e.g., creating a new document in a word processing application), a second quick action 116b corresponding to an executable action 110 of a second productivity application of the application suite (e.g., creating a new spreadsheet in a spreadsheet application), and a third quick action 116c corresponding to an executable action 110 or a third productivity application of the application suite (e.g., creating a new presentation in a presentation application).

[0032] Reference now Figure 2B , depicts an example user selection of a first quick action 116a presented in a quick action card 111. For example, the user moves an on-screen cursor 212 within the boundaries of the first quick action 116a and clicks or otherwise selects the first quick action 116. When the first quick action 116a is bound to a URL action, in response to the selection, the web browser 202 redirects to a web page corresponding to the specified URL. For example, and now with reference to Figure 2C, URL 217 corresponds to a web page of a first application (e.g., word processing application 232) of the productivity application suite associated with first quick action 116a. For example, the web page corresponding to URL 217 serves a UI (web processing application UI 215) of word processing application 232, which is displayed in main display area 220 of web browser UI 205. In one example, the URL may further provide a new word processing document 234, which is then displayed in word processing application UI 215.

[0033] Continuing with the example, and now referring to Figure 2D In response to detecting a second hover event for the second icon 206b, dynamic quick actions 116d-116e corresponding to the application 118 of the second icon 206 are presented to the user on the screen 208. For example, the second icon 206b corresponds to a mail and calendar application that provides functionality 112 for managing emails, calendars, contacts, tasks, and the like. In response to a hover selection of the second icon 206, a corresponding quick action card 111 is generated and displayed. As depicted, a plurality of quick actions 116d-116e corresponding to executable actions for the mail and calendar application are populated in the quick action card 111 presented in the menu customization view 122, and a user selection of a fourth quick action 116d is made. In response to the selection, the web browser 202 executes the executable action 110 linked to the selected fourth quick action 116d. For example, and now with reference to Figure 2E , the application 118 (eg, mail and calendar application 242 ) associated with the fourth quick action 116 d is opened, and its associated UI (mail and calendar application UI 225 ) is displayed in the web browser UI 205 .

[0034] In some examples, and as in Figure 2EAs depicted, selection of a quick action 116 results in the UI of the selected application 118 (e.g., mail and calendar application UI 225) being displayed in a sidebar pane 250 that is expanded from the sidebar 210. For example, the fourth quick action 116d is associated with an event action, wherein, in response to the selection, the web browser 202 executes code or instructions included in the executable action 110 that is 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, which are invoked in response to selection of the corresponding quick action 116. When executed by the web browser 202, a communication is sent to the application 118, which triggers the application 118 to perform operations to process the quick action 116. As an example, the executable action 110 bound to the fourth quick action 116d can cause the web browser 202 to construct and send an API request that includes instructions (e.g., API endpoints and associated parameters) that the application 118 is configured to process and perform operations to provide one or more application functions 112 (e.g., wake up the mail and calendar application 242, create a new email 254). Figure 2E As depicted, a new email 254 is displayed in the mail and calendar application UI 225, which is displayed in the sidebar pane 250. The user is able to interact with the mail and calendar application 242 while performing other tasks on the computing device 204 using the web browser 202, such as composing a new word processing document 234 displayed in the main display area 220 of the web browser UI 205. In some examples, the sidebar pane 250 is located to the side of the main display area 220, and activation of the sidebar pane causes the main display area 220 to shrink so that the sidebar pane 250 does not obscure the content displayed in the main display area 220 (e.g., a web page serving the 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 main display area 220.

[0035] In a further example, and referring now to Figure 2F, quick action cards 111 are sometimes displayed in a mini-controller custom view 166. In the mini-controller custom view 166, a set of quick actions 116g-k (collectively referred to as quick actions 116) are presented as selectable controls that allow a user to control audio and / or video playback functions 112 of a corresponding application 118. The mini-controller custom view 166 is used for applications 118 such as a media player application 252, where a user can select a quick action 116 to quickly control the playback of audio and / or video content without requiring multiple user interactions to open the media player application 252 and then select controls. In an example, a set of quick actions 116g-k in the mini-controller custom view 166 is bound to a set of event actions, where selection of a quick action in the set causes the web browser 202 to perform an executable action 110 linked to the selected quick action. For example, an event action may correspond to controlling the play, pause, stop, skip forward and backward, volume, shuffle and repeat options, content selection, and / or other functions 112 of the media player application 252. In some examples, the media player application 252 includes an event handler programmed to process triggers received in response to executable actions 110 performed by the web browser 202 .

[0036] Having described an illustrative example of a quick action card 111, Figure 3 An example system 300 for dynamically generating quick actions 116 for applications 118 in a web browser 202 is depicted. The web browser 202 executes on a client computing device 204. Examples of the client computing device 204 include a personal computer (PC), a mobile device (e.g., a smartphone, a tablet, a laptop, a personal digital assistant (PDA)), a wearable device (e.g., a smart watch, smart glasses, a fitness tracker, smart clothing, a body-worn device, a head-mounted display), a gaming console or device, an Internet of Things (IoT) device, etc. The web browser 202 includes web browsing and display functionality that controls 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 by the web browser 202 and controlled via interaction with the web browser 202. The web browser 202 also includes a quick action controller 310 that controls the registration of quick actions 116 and the generation and display of quick actions 116 in quick action cards 111. The quick action controller 310 is a collection or subset of computing code that causes or controls some of the operations discussed herein related to generating dynamic quick actions 116 for display in a quick action card 111 in a web browser 202 .

[0037] In an example, the quick action controller 310 controls the display of the quick actions 116 through the use of configuration data included in the quick action list 102. The quick action list 102 is a file or set of code, such as JavaScript Object Notation (JSON) data, that defines the configuration of the quick action cards 111 for the application 118 and the quick actions 116 to be displayed in the quick action cards 111. For example, the quick action list 102 can be provided by a developer feature team project manager of the application 118 and received by the server 304. The server 304 stores, manages, and distributes the quick action list 102. In some examples, the web server 304 receives the quick action list 102 via the content delivery network 306 and distributes it to the list delivery service 314 and / or the client computing device 204 within a minimum time period. For example, the quick action list 102 can be pushed to the device automatically or as part of a scheduled batch update process.

[0038] In an example, configuration information in the quick action list 102 specifies a custom view 104 (e.g., a menu custom view 122 or a mini-controller custom view 166) that defines the structure and style of the quick action cards 111 for the applications 118 and the quick actions 116 presented in the quick action cards 111. In an example, the specified custom view 104 provides a consistent structure for organizing and displaying the quick actions 116. For example, the custom view 104 includes placeholders for various UI elements 108, such as buttons, text fields, sliders, toggle switches, drop-down lists, labels, progress indicators, icons, status indicators, etc. One or more UI elements 108 in the specified custom view 104 are mapped to one or more defined quick actions 116 and operate as interactive elements via which a user can interact with the functionality 112 of the corresponding application 118.

[0039] Each quick action 116 in the quick action list 102 defines an executable action 110 that specifies a behavior that the web browser 202 performs in response to a selection of an associated UI element 108. Such an executable action 110 further causes the application 118 to perform a desired application function 112. As discussed above, example executable actions 110 include URL actions and event actions. Thus, in some examples, the quick action list 102 specifies a URL 217 to which the web browser 202 navigates when the corresponding URL action is performed. In other examples, when the executable action is an event action, the quick action list specifies an event handler that is triggered when the UI element 108 associated with the quick action 116 is selected.

[0040] In one example implementation, the system 300 includes an API 318 that defines a set of rules and protocols that allow the web browser 202 to communicate and interact with the application 118. When an event action is triggered, the event handler initiates an API request to the API 318, which processes the request and transmits instructions to the application 118 to perform specific operations to perform the requested application function 112. In some examples, the API 318 includes a set of endpoints that define the available operations of the application 118 and the associated request / response formats.

[0041] In an example, the manifests 102 are processed or managed by a manifest delivery service 314. For example, the manifest delivery service 314 provides one or more manifests 102 to the web browser 202, where the quick action controller 310 then manages the manifests 102 and corresponding quick action cards 111. In one example, the manifest delivery service 314 is called by the web browser 202 to retrieve a manifest 102 for a particular application 118.

[0042] In one example implementation, the quick action controller 310 includes a custom action builder 320, a hover card builder 330, and an event listener 340 for consuming the manifest 102 and generating a custom quick action card 111 for the corresponding application 118 included in the sidebar 210. The custom action builder 320 receives the manifest 102 obtained from the server 304, parses the manifest 102, and compiles the quick action configuration included in the manifest 102 into an executable action 110 (e.g., a URL action and / or an event action) that can be executed by the web browser 202 to control the function 112 of the application 118.

[0043] The event listener 340 monitors user interactions to determine whether to display or close the quick action card 111. One example user interaction that the event listener 340 monitors is "cursor input", where the cursor 212 on the screen is detected within the borders 213 of the application icon 206 in the sidebar 210. When the cursor 212 is monitored within the borders 213 of the application icon 206, the event listener 340 starts a timer. In the example, the cursor 212 is within the borders 213 of the application icon 206 for at least a duration threshold (e.g., 600ms) without selecting the application icon 206 (e.g., via a mouse click or tap on a touch screen) triggers a hover event. When it is determined that the hover event is triggered, the event listener 340 notifies the hover card builder 330 to display a quick action card 111 for the application 118 near the application icon 206. In an example implementation, the hover card builder 330 binds executable actions defined in the quick action list 102 to a specified custom view 104 (e.g., a menu custom view 122 or a mini-controller custom view 166) to generate a quick action card 111 for display based on information received from the event listener 340.

[0044] In some examples, binding executable actions 110 to custom views 104 triggers a data request to applications 118 for retrieving application information for generating quick action cards 111. For example, one or more quick actions 116 defined in quick action list 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 applications 118. For example, a first dynamic quick action 116 for a media player application 118 displayed in mini-controller custom view 166 may include information about a current or next song in a user's music playlist, and a second dynamic quick action may include a slider to visually represent a current time position in the song. Information about the current or next song and the current time position is retrieved from application 118 for use in updating the display of UI elements of the first and second quick actions 116 in quick action card 111.

[0045] In another example, the dynamic quick actions 116 are personalized for the user. For example, a dynamic quick action 116 for an application 118 can be linked to a function 112 of an application that is frequently used by the user, wherein information about the frequently used function 112 is retrieved from the application 118 and is used to determine a specific quick action 116 to be included in the quick action card 111. For example, a user may use a game application 118 to play two specific games among multiple games. Therefore, when binding an executable action 110 to a custom view 104 to generate a quick action card 111, the hover card builder 330 may request a list of the top number of games (e.g., 2) that the user uses most frequently, and then populate the quick action card 111 with two quick actions 116 corresponding to the two specific games. As another example, a dynamic quick action 116 may be generated to respond to a recently received communication, open a recently edited document, accept or decline a recently received calendar invitation, and the like.

[0046] Another example user interaction that the event listener 340 listens for is a “cursor exit,” where the cursor 212 is monitored outside the boundaries 213 of a hovering application icon 206 or quick action card 111. When the cursor 212 is monitored outside the boundaries 213 of a hovering 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.

[0047] In a further example, the event listener 340 listens for selection user interactions, where an event representing a user selection (e.g., a mouse click, a touch input on a touch screen) via the user input device 233 is received by the event listener 340. 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 execute the executable action 110 linked to the selected quick action 116.

[0048] Figure 4 An example method 400 for dynamically generating quick actions 116 for an application 118 according to an example of the present disclosure is depicted. The operations of the method 400 may be performed by a web browser 202 or a computing device 204 on which the web browser 202 operates. For example, some operations of the method 400 are performed by a quick action controller 310 or a manifest delivery service 314. At operation 402, a web browser 202 is launched or executed. For example, the web browser 202 is opened in response to a user selecting the web browser 202.

[0049] At operation 404, one or more applications 118 registered with the web browser 202 and / or a profile of a user logged into the web browser 202 are loaded by the web browser 202. In some examples, loading the applications 118 includes receiving a list of applications 118 and their respective application manifests from a manifest delivery service (e.g., manifest delivery service 314 or another manifest delivery service). Operation 404 also includes updating the web browser UI 205 based on the loaded applications 118. For example, an application icon 206 corresponding to the application 118 is displayed in a sidebar 210 of the web browser 202.

[0050] At operation 406, a quick action list 102 is received for each of the one or more registered applications 118. In some implementations, operation 406 may be included in operation 404, where the quick action list 102 is retrieved when the application list is received. Each received quick action list 102 includes 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 in the quick action card 111 and the executable actions 110 linked to each quick action 116.

[0051] At operation 408, event listener 340 listens for user interactions with application icons 206 of applications 118 presented in sidebar 210. At decision operation 410, a determination is made as to whether a "cursor enter" user interaction with application icon 206 is detected. For example, when a user moves cursor 212 within borders 213 of application icon 206 in sidebar 210 and a "cursor enter" user interaction is detected, method 400 proceeds to operation 412 where a timer is started. If a "cursor enter" user interaction with application icon 206 is not detected, event listener 340 returns to operation 408 where it continues to listen for another user interaction event.

[0052] At decision operation 414, it is determined whether a time threshold is met, thereby triggering a hover event. For example, a hover event with application icon 206 is determined when the user's pointer 212 is within the border 213 of application icon 206 for at least a time threshold without receiving a selection of application icon 206. When the time threshold is met and a hover interaction is determined, method 400 proceeds to operation 416. When the time threshold is not met, method 400 returns to operation 408.

[0053] At operation 416, a quick action card 111 is generated, wherein the hover card builder 330 binds executable actions 110 corresponding to a set of quick actions 116 defined in the corresponding quick action list 102 to a UI element 108 provided in the specified custom view 104. For example, the quick action list 102 specifies a menu custom view 122 or a mini-controller custom view 166 for the quick action card 111, the executable actions 110, and other configuration properties of the quick action 116. In some examples, the executable actions 110 are URL actions and / or event actions. In some implementations, information is obtained from the application 118 for generating the quick action 116. For example, the quick action 116 can be dynamic and linked to real-time application information, wherein the current application information is requested from the application 118 and is used to determine which quick actions 116 are included in the quick action card 111 and / or display properties of the quick action 116 in the quick action card 111.

[0054] At operation 418, the hover card builder 330 presents a quick action card 111 in the web browser UI 205, the quick action card 111 including a UI element 108 representing the quick actions 116 defined in the quick action list 102. The quick actions 116 are presented as selectable UI elements according to the custom view 104 defined in the quick action list 102. For example, the quick action card 111 may be presented in a menu custom view 122 or a mini-controller custom view 166, displaying various selectable quick actions 116 linked to various application functions 112.

[0055] At decision operation 420, a determination is made as to whether a “cursor exits” user interaction is detected with the application icon 206 or the quick action card 111. For example, when the user moves the cursor 212 outside of the border 213 of the application icon 206 or the quick action card 111, a “cursor exits” user interaction is detected and the method 400 proceeds to operation 422. At operation 422, the quick action card 111 is removed from display.

[0056] When a “cursor exit” user interaction with the application icon 206 or the quick action card 111 is not detected, the method 400 proceeds to decision operation 424, where it is determined whether a selection of a quick action 116 is received. When a selection of a quick action 116 is not received, the method 400 returns to decision operation 420 to determine whether a “cursor exit” user interaction with the application icon 206 or the quick action card 111 is detected. Alternatively, when it is determined that a selection of a quick action 116 is received, the method 400 proceeds to operation 426, where an executable action 110 bound to the selected quick action 116 is executed by the web browser 202. For example, when the executable action 110 is a URL action, the web browser 202 navigates to a specified URL 217 associated with the application 118, and a web page corresponding to the specified URL 217 is displayed in the main display area 220 of the web browser UI 205. When the executable action 110 is an event action, the event handler is triggered, causing the web browser 202 to initiate an API request that transmits instructions to the application 118 to perform a specific operation that provides the application function 112 corresponding to the selected quick action 116. For example, the application 118 can 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 another application function 112. In some examples, in response to the event action, the web browser 202 opens a sidebar pane 250 and provides a UI of the application 118 in the sidebar pane 250, which the user can use to interact with the application 118 through the web browser 202.

[0057] Figure 5 The and associated descriptions provide a discussion of various operating environments in which examples of the present invention may be practiced. Figure 5 The illustrated and discussed devices and systems are for purposes of example and explanation, and are not limiting of the wide variety of computing device configurations that may be used to practice aspects of the invention described herein. Figure 5500 , with which examples of the present disclosure may be practiced. The computing device components described below may be applicable to client devices running the web browser discussed above. In a basic configuration, the computing device 500 may include at least one processing unit 502 and a system memory 504. (One or more) processing units (e.g., processors) may be referred to as a processing system. Depending on the configuration and type of the computing device, the system memory 504 may include, but is not limited to, volatile memory (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combination of these 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., web browser 202 and quick action controller 310).

[0058] For example, operating system 505 may be adapted to control the operation of computing device 500. In addition, aspects of the present invention may be practiced in conjunction with a graphics library, other operating systems, or any other application program, and are not limited to any particular application or system. Figure 5 508. The computing device 500 may have additional features or functionality. For example, the computing device 500 may also include additional data storage devices (removable and / or non-removable), such as, for example, magnetic disks, optical disks, or tapes. Such additional storage devices may be Figure 5 , which is illustrated by a removable storage device 509 and a non-removable storage device 510.

[0059] As discussed above, a number of program modules and data files may be stored in system memory 504. When executed on processing unit 502, program modules 506 may perform processes including, but not limited to, Figure 4 Other program modules that can be used according to examples of the present invention may include applications such as email and contact applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided applications, etc.

[0060] In addition, examples of the present invention may be practiced on a circuit including discrete electronic components, a packaged or integrated electronic chip containing logic gates, a circuit using a microprocessor, or a single chip containing electronic components or a microprocessor. For example, examples of the present invention may be practiced via a system on a chip (SOC), wherein the Figure 5Each or more of the components illustrated in the figure may be integrated onto a single integrated circuit. Such a SOC device may include one or more processing units, a graphics unit, a communication unit, a system virtualization unit, and various application functions, all of which are integrated (or "burned") onto a chip substrate as a single integrated circuit. When operated via a SOC, the functions described herein regarding generating suggestion queries may be operated via dedicated logic integrated with other components of the computing device 500 on a single integrated circuit (chip). The examples of the present disclosure may also be practiced using other technologies capable of performing logical operations, such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies.

[0061] The computing device 500 may also have one or more input devices 512, such as a keyboard, a mouse, a pen, a voice input device, a touch input device, etc. It may also include (one or more) output devices 514, such as a display, a speaker, a printer, etc. The above devices are examples, and other devices may be used. The computing device 500 may include one or more communication connections 516 that allow communication with other computing devices 518. Examples of suitable communication connections 516 include, but are not limited to, RF transmitters, receivers, and / or transceiver circuits; Universal Serial Bus (USB), parallel and / or serial ports.

[0062] The term computer-readable medium used in this article may include computer storage media. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology 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 media (i.e., memory storage). Computer storage media may include RAM, ROM, electrically erasable programmable read-only memory (EEPROM), flash memory or other storage technology, CD-ROM, digital versatile disk (DVD) or other optical storage, magnetic cassette, magnetic tape, disk storage or other magnetic storage device, or any other manufactured product that can be used to store information and can be accessed by computing device 500. Any such computer storage medium can be a part of computing device 500. Computer storage media does not include carrier waves or other propagated data signals.

[0063] Communication media may be implemented by computer readable instructions, data structures, program modules or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term "modulated data signal" may describe a signal having one or more characteristics that are set or changed in a manner that encodes information in the signal. By way of example and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared and other wireless media.

[0064] In one aspect, the technology relates to a computing system for generating dynamic quick actions for an application, the computing system comprising: at least one processor; and a memory storing instructions that, when executed by the at least one processor, cause the computing system to: display an icon for the application in a sidebar of a web browser; detect a hover event associated with the icon; bind executable actions to user interface elements based on configuration information received in a quick action list for the application; display a user interface element representing a quick action in a quick action card near the icon; receive a selection of the user interface element; and execute the executable action bound to the selected user interface element to perform a function of the application corresponding to the represented quick action.

[0065] In some examples, the executable action is a uniform resource locator (URL) action, including executable code for navigating to a specified URL of a web page. In a further example, the executable action is an event action including executable code for instructing the application to perform an operation that causes a function to be performed. In a further example, the executable action is an event action, and the instructions cause the system to make an API call to an application programming interface (API) of the application. In a further example, the instructions cause the system to open and serve a user interface of the application in a sidebar pane of a web browser. In a further example, the instructions further cause the system to: retrieve information from the application; and perform at least one of the following: present the retrieved information in the quick action card; or use the retrieved information to determine the display properties of the user interface element representing the quick action. In a further example, the instructions further cause the system to receive the quick action list, wherein the quick action list defines a plurality of quick actions corresponding to a plurality of functions of the application.

[0066] In one aspect, the technology relates to a computer-implemented method for generating dynamic quick actions for an application, comprising: receiving a quick action list defining quick actions corresponding to functions of the application, wherein the application is represented by an icon in a sidebar of a web browser; detecting a hover event associated with the icon; binding executable actions defined in the quick action list to a user interface element representing the quick actions in a quick action card; causing the quick action card and the user interface element to be displayed; receiving a selection of the user interface element; and executing the executable action bound to the selected user interface element and causing the function of the application.

[0067] In some examples, before binding the execution action to the user interface element, the custom view of the quick action card is loaded, wherein the custom view is specified in the quick action list. In an additional example, loading the custom view includes loading a menu custom view or a mini controller custom view. In a further example, binding the executable action defined in the quick action list to the user interface element includes binding a uniform resource locator (URL) action to the user interface element, wherein the URL action includes a URL of a web page. In yet another example, executing the executable action bound to the selected user interface element includes navigating to the web page of the URL included in the URL action. In yet another example, binding the executable action defined in the quick action list to the user interface element includes binding an event action to the user interface element, wherein the event action includes executable code for performing a function of the application. In yet another example, executing the executable action includes executing the executable code. In a further example, executing the executable code includes initiating an application programming interface (API) request, which is transmitted to the application to instruct the application to perform the function of the application. In yet another example, performing the executable action includes causing the application to open and providing a user interface of the application in a sidebar pane of the web browser. In yet another example, causing the quick action card and the user interface element to be displayed includes: retrieving information from the application; and presenting the retrieved information in the quick action card; or using the retrieved information to determine display properties of the quick action. In yet another example, the quick action manifest defines a plurality of quick actions corresponding to a plurality of functions of the application; and causing the quick action card and the user interface element to be displayed includes: retrieving information from the application; and using the retrieved information to determine one or more quick actions of the plurality of quick actions to be included in the quick action card.

[0068] In one aspect, the technology relates to a computer-implemented method for generating dynamic quick actions for an application, comprising: displaying a sidebar within a web browser; displaying an icon for an application in the sidebar; receiving a quick action list for the application, the quick action list including configuration information for quick actions associated with functions of the application; detecting a hover event associated with the icon; applying the configuration information for the quick actions to a custom view of a quick action card; binding an executable action included in the configuration information to a user interface element in the custom view; displaying the quick action card including the user interface element near the icon; receiving a selection of the user interface element; and running an executable action for performing the function of the application. In some examples, the executable action is an event action, the event action including executable code for instructing the application to perform an operation that causes the application to open and serve a user interface of the application in a sidebar pane of the web browser.

[0069] For example, the above text describes various aspects of the present invention with reference to the block diagrams and / or operating instructions of the methods, systems and computer program products according to various aspects of the present invention. As shown in any flow chart, the functions / actions noted in the blocks will occur in order. For example, in fact, depending on the functions / actions involved, two blocks displayed in succession can be executed substantially simultaneously, or the blocks can sometimes be executed in reverse order. In addition, as used herein and in the claims, the phrase "at least one of element A, element B or element C" is intended to convey any of element A, element B, element C, element A and B, element A and C, element B and C, and elements A, B and C.

[0070] The description and illustration of one or more examples provided in this application are not intended to limit or restrict the scope of the present invention in any way. The aspects, examples and details provided in this application are considered to be sufficient to convey the best mode of possession and enable others to make and use the claimed invention. The claimed invention should not be interpreted as being limited to any aspect, example or detail provided in this application. Whether it is combined display and description or separately displayed and described, various features (structures and methods) are intended to be selectively included or omitted to produce examples with specific feature sets. Description and illustration of the present application have been provided, and those skilled in the art can envision changes, modifications and alternative examples within the spirit of the broader aspects of the general inventive concept embodied in this application, which changes, modifications, and alternative examples do not depart from the broader scope of the claimed invention.

Claims

1. A computing system for generating dynamic quick actions for an application, the computing system comprising: at least one processor; as well as a memory storing instructions that, when executed by the at least one processor, cause the computing system to: Display an icon for the application in the sidebar of the web browser; detecting a hover event associated with the icon; binding executable actions to user interface elements based on configuration information received in a quick action list for the application; displaying a user interface element representing the quick action in a quick action card adjacent to the icon; receiving a selection of the user interface element; as well as The executable action bound to the selected user interface element is run to perform a function of the application corresponding to the represented quick action.

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 instructions cause the system to make an application programming interface (API) call to the application.

5. The system according to claim 3, wherein: The instructions cause the system to open and provide a user interface of the application in a sidebar pane of the web browser.

6. The system according to claim 1, wherein: The instructions further cause the system to: retrieving information from the application; and Do at least one of the following: presenting the retrieved information in the quick action card; or The retrieved information is used to determine display properties of the user interface element representing the quick action.

7. The system according to claim 1, wherein: The instructions further cause the system to receive the quick action list, wherein the quick action list defines a plurality of quick actions corresponding to a plurality of functions of the application.

8. A computer-implemented method for generating dynamic quick actions for an application, comprising: receiving a quick action list defining quick actions corresponding to functions of an application, wherein the application is represented by an icon in a sidebar of a web browser; detecting a hover event associated with the icon; Binding an executable action defined in the quick action list to a user interface element representing the quick action in the quick action card; causing display of the quick action card and the user interface element; receiving a selection of the user interface element; and The executable action bound to the selected user interface element is executed and causes the functionality of the application.

9. The method according to claim 8, wherein: The step of binding the execution action to the user interface element includes loading a custom view of the quick action card, wherein the custom view is specified in the quick action list.

10. The method according to claim 9, wherein: Loading the custom view includes loading a menu custom view or a mini controller custom view.

11. The method according to claim 8, wherein: Binding the executable action defined in the quick action list to the user interface element includes binding a uniform resource locator (URL) action to the user interface element, wherein the URL action includes a URL of a web page.

12. The method according to claim 11, wherein: Running the executable action bound to the selected user interface element includes navigating to the web page at the URL included in the URL action.

13. The method according to claim 8, wherein: Binding the executable action defined in the quick action list to the user interface element includes binding an event action to the user interface element, wherein the event action includes executable code for performing the function of the application.

14. The method according to claim 13, wherein: Running the executable action includes executing the executable code.

15. The method according to claim 14, wherein: Running the executable code includes initiating an application programming interface (API) request, which is transmitted to the application to instruct the application to perform the function of the application.

16. The method according to claim 15, wherein: Running the executable action includes causing the application to open and providing a user interface of the application in a sidebar pane of the web browser.

17. The method according to claim 8, wherein: Causing display of the quick action card and the user interface element includes: retrieving information from the application; and presenting the retrieved information in the quick action card; or Display attributes for the quick action are determined using the retrieved information.

18. The method of claim 8, wherein: The quick action list defines a plurality of quick actions corresponding to a plurality of functions of the application; as well as Causing display of the quick action card and the user interface element includes: retrieving information from said application; as well as One or more quick actions of the plurality of quick actions to be included in the quick action card are determined using the retrieved information.

19. A computer-implemented method for generating dynamic quick actions for an application, comprising: Display a sidebar in a web browser; displaying icons for applications in the sidebar; receiving a quick action list for the application, the quick action list comprising configuration information of quick actions associated with functions of the application; detecting a hover event associated with the icon; Applying the configuration information for the quick action to a custom view of a quick action card; Binding executable actions included in the configuration information to user interface elements in the custom view; displaying the quick action card including the user interface element adjacent to the icon; receiving a selection of the user interface element; as well as The executable action for executing the function of the application is executed.

20. The method according to claim 19, wherein: The executable action is an event action that includes executable code for instructing the application to perform an operation that causes the application to open and serve a user interface of the application in a sidebar pane of the web browser.