Handling Touch Gestures in Hybrid Applications
The input system selectively transmits user input to the non-local or local element channels of the hybrid application, solving the input ambiguity problem in hybrid applications, achieving clear user interaction and correct input processing.
Patent Information
- Application Number
- CN201610247853.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2015-07-16
- Filing Date
- 2016-04-20
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2036-04-20
AI Technical Summary
Mixed applications are prone to input ambiguity when receiving and processing user input, resulting in poor user interaction experience and inability to accurately interpret effective touch input.
By detecting user inputs through the input system and selectively transmitting to non-local elements or local element channels of the hybrid application, ensuring that each input event is responded clearly and avoiding input ambiguity and dead zones.
Reduces input ambiguity in hybrid applications, provides a clear user interaction experience, ensures that hybrid applications can handle user input correctly, and reduces unwanted dead zones.
Smart Images

Figure CN106354401B_ABST
Abstract
Description
Technical Field
[0001] One or more embodiments described herein generally relate to receiving and processing user input. More specifically, one or more embodiments relate to receiving and processing user input regarding hybrid computing applications. Background Art
[0002] Computing devices (e.g., computers, tablets, smart phones) provide people with many ways to capture, create, share, view, and otherwise interact with many types of digital content. For example, many computing devices allow users to interact with digital content via a touch screen or a graphical user interface. Additionally, many computing devices facilitate interaction with digital content via one or more applications.
[0003] In facilitating interaction with digital content, many systems combine elements of both native applications and non-native (e.g., web-based) applications. Specifically, many mobile devices utilize hybrid applications that include native elements developed for a particular platform and / or devices that can access various functions of the computing device (e.g., Global Positioning System (GPS), camera, address book). In addition to native elements, hybrid applications often include web elements that are common to multiple platforms and are accessed via a network (e.g., the Internet). In this way, a computing device can host or otherwise implement an application within a native element (e.g., a native container) that has access to platform-specific functions and leverages online capabilities accessible to the computing device.
[0004] While hybrid applications provide various improvements over other types of applications, hybrid applications can encounter input ambiguity when receiving and processing user input. Specifically, when interacting with a hybrid application via a graphical user interface, the hybrid application may not correctly receive or process one or more user inputs, resulting in frustration. For example, both the native elements and the web elements of a hybrid application can receive and process touch input via a touch screen interface. Thus, when receiving touch input that both the native elements and the web elements can receive and process, the hybrid application may misinterpret the touch input by processing multiple inputs instead of the expected single input. Alternatively, the web elements or the native elements may pass the buck to each other and not fully process the touch input, rather than incorrectly processing multiple inputs. As a result, the hybrid application is unable to accurately interpret otherwise valid touch input.
[0005] In resolving input ambiguity, some operating system implementations communicate between local elements and network elements to resolve any unexpected ambiguity. For example, in the case where a local element receives a touch input that the local element cannot process, the local element can forward the input to a web element to process the input. Alternatively, the network element can forward the input to the local element to process the input using a similar process. However, in the case where neither the local element nor the network element responds to the touch input, causing the local element or the web element to defer processing various touch inputs can result in dead zones. As a result, users can experience frustration when interacting with a hybrid application.
[0006] Accordingly, there are many considerations to be made in receiving and processing user input regarding a hybrid application. SUMMARY
[0007] Embodiments of the present disclosure provide benefits and / or solve one or more of the foregoing problems or other problems in the field of systems and methods for providing digital content to a user. For example, one or more embodiments include systems and methods for detecting user input(s) and transmitting the user input to a non-local element channel of a hybrid application to process the user input. Additionally, one or more embodiments include systems and methods for receiving an indication that the non-local portion of an application has rejected the user input and transmitting the user input to a local portion channel of the application to process the user input.
[0008] Accordingly, one or more embodiments include features and functions that enable a user to interact with digital content regarding a graphical user interface associated with a hybrid application. For example, in response to receiving user input, a client device can first transmit the user input to a non-local element channel of the hybrid application and, after receiving an indication that the non-local element has rejected the user input, transmit the user input to a local element channel of the hybrid application. Thus, the systems and methods described herein avoid misinterpreting user input as multiple user inputs and instead provide a single clear and definitive response to receiving user input.
[0009] Additionally, one or more embodiments include features and functionality that prevent unwanted dead zones when interacting with digital content provided via a graphical user interface associated with a hybrid application. For example, one or more embodiments avoid ambiguity by transmitting user input to a non-native element channel, rather than having the non-native and native elements of the hybrid application attempt to resolve ambiguity by deferring processing between different elements of the hybrid application. Additionally, one or more embodiments transmit user input to the native element channel of the application upon receiving an indication that the non-native element has rejected the user input. Thus, one or more embodiments can reduce or eliminate ambiguity regarding which element of the hybrid application will defer processing of other elements. Thus, because any user input is first channeled to the non-native elements of the hybrid application. Only when the input is rejected by the non-native element is the user input then channeled to the native element. Thus, regardless of the operating system used on a particular device, the author of the digital content can have ultimate control in managing user input regarding the digital content.
[0010] Additional features and advantages will be set forth in the following description, and in part will be obvious from the description, or may be learned by practice of such exemplary embodiments. The features and advantages of such embodiments can be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims. These and other features will become more fully apparent from the following description and appended claims, or may be learned by practice of such exemplary embodiments as set forth hereinafter. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] To describe the above-recited manner and other advantages and marketing features, a more particular description will be presented by reference to the specific embodiments illustrated in the drawings. It should be noted that the drawings are not drawn to scale, and elements of similar structure or function are generally represented by like reference numerals throughout the drawings for illustrative purposes. With the understanding that the drawings merely depict typical embodiments and are not to be considered limiting of their scope, various embodiments are described and explained with additional specificity and detail by use of the drawings, in which:
[0012] Figure 1 A block diagram of a client device for receiving and processing user input in accordance with one or more embodiments is illustrated;
[0013] Figure 2 A flowchart of an interaction between an input manager and a hybrid application manager in accordance with one or more embodiments is illustrated;
[0014] Figure 3A A graphical user interface showing a presentation of digital content in accordance with one or more embodiments is illustrated;
[0015] Figure 3B Illustrates a graphical user interface showing the presentation of digital content according to one or more embodiments;
[0016] Figure 4 Illustrates a flowchart of a series of actions in a method for receiving and processing one or more user inputs according to one or more embodiments;
[0017] Figure 5 Illustrates a flowchart of a series of actions in a method for receiving and processing one or more user inputs according to one or more embodiments;
[0018] Figure 6 Illustrates a block diagram of an exemplary computing device according to one or more embodiments. Detailed Description
[0019] One or more embodiments described herein include an input system that facilitates a user's pleasant experience when interacting with a hybrid computing application (or simply referred to as a "hybrid application"). Specifically, the input system is capable of reducing input ambiguity regarding receiving and processing user input provided by a user when interacting with a hybrid application having local elements and non-local elements. For example, in one or more embodiments, the input system detects user input and transmits the user input to the non-local element channel of the hybrid application. In the case where the non-local elements of the hybrid application reject the user input, the input system may transmit the user input to the local element channel of the hybrid application for processing the user input.
[0020] In one or more embodiments, the input system enables the hybrid application to provide a clear and unambiguous response to a single input event (e.g., a touch gesture). Specifically, the input system can facilitate providing a single response to a single input event by selectively transmitting one or more user inputs to the non-local elements and / or local element channels of the hybrid application. For example, the input system may detect a touch gesture including a series of inputs and first transmit each input of the touch gesture to the non-local element channel of the hybrid application when receiving the series of inputs that constitute the touch gesture. When determining that one or more inputs of the touch gesture have been rejected by the non-local elements, the input system may transmit any rejected user inputs, other than any additional user inputs of the touch gesture, to the local element channel of the hybrid application. Thus, the input system is able to avoid providing multiple responses to a single input event by selectively transmitting one or more user inputs to the corresponding element channels of the hybrid application.
[0021] Additionally, one or more embodiments of the input system reduce or prevent unwanted dead zones within the graphical user interface associated with hybrid applications. Specifically, the input system avoids dead zones caused by non-native and native elements not responding to a particular user input by ensuring that one or both of the non-native and native elements have the opportunity to receive and process user input. For example, the input system can first transmit user input to the non-native element channel of the hybrid application, rather than relying on the native and non-native elements of the hybrid application to determine which element should receive and process the user input. Additionally, in the case where the non-native element of the hybrid application rejects the user input, the input system can transmit the user input to the native element channel. Thus, the input system is able to give each of the native and non-native elements of the hybrid application the opportunity to respond to user input without creating confusion as to whether the non-native or native element should process the user input.
[0022] Furthermore, in one or more embodiments, the input system enables the creator of digital content (e.g., the author) to have full control over how user input is processed by the hybrid application when presenting the digital content authored by the user. Specifically, by first transmitting user input or a series of user inputs to the non-native element channel of the hybrid application, the input system ensures that the non-native element of the hybrid application has initial control over how user input is received and processed. For example, in the case where the non-native element includes non-native content created by the author and the native element includes a native container on the client device, the input system can first transmit the received user input to the network element channel to be processed according to the instructions contained in the non-native element. Thus, when both the native container and the non-native content of the hybrid application are able to receive and process a particular user input, the input system first transmits the user input to the network element channel to be processed according to the instructions created by the author of the non-native content.
[0023] As mentioned above, the input system is capable of facilitating the receipt and processing of one or more user inputs regarding a graphical user interface presented by a hybrid application. In one or more embodiments, the input system includes an application programming interface (API) that operates on a client device according to an opt-in contract that accesses the hybrid application and controls how inputs are received and channeled to local and non-local elements of the hybrid application. For example, as will be described in more detail below, the API can listen for or otherwise monitor incoming input events and detect one or more user inputs received at the client device. The API can channel the user input to the non-local element upon receipt of the user input. If the non-local element rejects one or more of the user inputs, the non-local element can provide a call to the API indicating that one or more of the user inputs have been rejected. In response, the API can channel the rejected user input(s) from a touch gesture or other input event and any additional user input to the local element of the hybrid application.
[0024] As used herein, a "hybrid application" refers to an application that includes both non-local elements and local elements. For example, a hybrid application can refer to a software application that provides non-local functionality as well as local functionality of a client device. In one or more embodiments, the hybrid application is a mobile application hosted within a local container stored locally on a mobile device and that utilizes a mobile web view. For example, a hybrid application can include non-local content contained within a local application on a mobile device and that utilizes the functionality of the mobile device and / or the operating system of the mobile device. Thus, the hybrid application is capable of presenting non-local content within a graphical user interface provided by the local application and has access to various functions provided by the mobile device.
[0025] As used herein, the "local element" of a hybrid application can refer to an application or container installed on a client device. Additionally, the local element can include features and functions specific to the operating system or platform used on the client device. In one or more embodiments, the local element provides access to features of the client device, which can include, for example, a camera, a global positioning system (GPS), an accelerometer, a compass, a contact list, and other features provided by the operating system and / or the client device. The local element can also incorporate platform-specific gestures (or other gestures specific to the local element) that the local element is capable of receiving and processing. Additionally, the local element can operate with or without access to online content. For example, even without access to online content, the hybrid application can provide functions associated with the local element without providing functions associated with the non-local elements of the hybrid application.
[0026] As used herein, a "non-native element" of a hybrid application may refer to an application and / or content other than a native element. A non-native element may be capable of accessing and performing functions based on the non-native element. For example, a non-native element is capable of obtaining and displaying non-native content. For example, a non-native element can include online content and a web viewer or web application within which the online content is presented to a user. Alternatively, a non-native element may include HTML or other content that does not reach the client device via a network HTTP call. Thus, non-native content can include online HTML content or non-online HTML content. In the case of a hybrid application, a non-native element may be encapsulated within a native element (e.g., a native container) or accessed online and provided to a user of the client device via a graphical user interface provided by the native element of the hybrid application. In one or more embodiments, the non-native element includes HTML content presented to a user within a graphical user interface on a display area of the client device. Additionally, in one or more embodiments, the non-native element is device and platform agnostic. For example, a mobile device (or other client device) may access and provide online HTML content within a platform-independent web browser on any mobile device having access to online content.
[0027] As used herein, an "input event" or "user interaction" may be used interchangeably to refer to one or more user inputs (or simply "inputs") provided by a user with respect to a graphical user interface. Specifically, an input event or user interaction may refer to a single user input or a combination of user inputs received from a user by means of one or more input devices. In one or more embodiments, an input event refers to one or more user inputs received by a user device via a touch screen. As an example, an input event may refer to a touch gesture (e.g., a tap gesture) that includes a single input received by the client device. Alternatively, an input event may refer to a touch gesture (e.g., a swipe gesture) that includes a series of multiple inputs. Additionally, in one or more embodiments, an input event includes multiple associated touch gestures. Examples of touch gestures that constitute an input event may include, but are not limited to, swipe gestures, tap gestures, pinch gestures, reverse pinch gestures, or other types of user inputs provided with respect to a graphical user interface via a touch screen. Further, while one or more embodiments described herein refer to an input event that includes a user input received with respect to or otherwise detected on a touch screen interface, it should be appreciated that an input event may refer to any series of one or more user inputs received with respect to a graphical user interface provided to a user via a display area of the client device.
[0028] As used herein, "digital content" refers to any digital data. For example, the term digital content can include a defined portion of digital data (e.g., a data file). Examples of digital content can include digital images, digital video, all types of electronic document files, streaming content, contact lists, web content, and / or folders that include any type of digital content. Additionally, digital content can refer to any digital content that is provided to a user on a graphical user interface via a display area on a client device. In one or more embodiments, digital content is provided to a user via a native element of a hybrid application. Additionally or alternatively, digital content can be provided to a user via a non-native element of a hybrid application.
[0029] Additional features and characteristics of one or more embodiments of the input system are described below with reference to the accompanying drawings. For example, Figure 1 FIG. illustrates a block diagram of an example embodiment of a client device 100 including an implementation of an input system 101 in accordance with one or more principles described herein. As Figure 1 shown, the input system 101 can include a user interface provider 102, an input detector 104, and a hybrid application manager 106 including a native manager 112 and a non-native manager 114. As Figure 1 shown, the input system 101 further includes an input manager 108, which includes an input listener 116 and a channel manager 118. Additionally, as Figure 1 shown, the client device 100 includes a data storage device 110, which includes input data 120. One or more components 102 - 108 of the input system 101 are provided via a platform or operating system on the client device 100. Additionally or alternatively, one or more components 102 - 108 of the input system 101 are installed on the client device 100 and operate in conjunction with a platform or operating system running on the client device 100.
[0030] Generally, the client device 100 can include any one of a variety of types of client devices. For example, the client device 100 can be a mobile device (e.g., a smart phone), a tablet computer, a laptop computer, a desktop computer, or any other type of computing device as further explained below with reference to Figure 6 FIG. Additionally, the client device 100 can include one of a variety of types of user interfaces. In one or more embodiments, the client device 100 includes a touch screen interface with which a user can interact. Additionally, the client device 100 can communicate with other devices using any communication platform and technology suitable for transmitting data and / or communication signals (including any known communication technologies, devices, media, and protocols that support remote data communication).
[0031] Each of the components 101-120 of the client device 100 can communicate with each other using any suitable communication technology. Additionally, although the components 101-120 are shown separately in Figure 1 any of the components 101-120 can be combined into fewer components, such as being combined into a single component or being divided into more components that can be used for a particular embodiment. Additionally, the components 101-120 can be located on or implemented by one or more computing devices, such as one or more client devices or server devices. For example, one or more features and functions described in connection with the input system 101 and / or the data storage device 110 on the client device 100 can also be applied to similar components on the server device or provided via network components.
[0032] Each of the components 101-120 can include software, hardware, or both. For example, each of the components 101-120 can include one or more instructions stored on a computer-readable storage medium and one or more processors of one or more computing devices for executing the instructions. The computer-executable instructions, when executed by one or more processors, cause the computing device to perform the methods described herein. Alternatively, the components 101-120 can include hardware, such as a dedicated processing device for performing a particular function or group of functions.
[0033] As an initial overview of one or more embodiments of the client device 100 and the input system 101, the client device 100 can implement the input system 101, which facilitates receiving and processing user input received from a user (e.g., touch input). Specifically, the input system 101 can facilitate the presentation of a graphical user interface associated with a hybrid application within a display area on the client device. Additionally, the input system 101 can provide one or more interaction features within the graphical user interface with which the user can interact and provide the user input to the client device 100. Additionally, the input system 101 can process one or more received user inputs according to the principles described herein. For example, the input system 101 can receive and process one or more touch inputs as described herein to reduce instances of user input ambiguity and improve the user experience regarding interacting with a hybrid application on a touchscreen interface.
[0034] As mentioned above, and as Figure 1As shown, the input system 101 includes a user interface provider 102. The user interface provider 102 provides a graphical user interface (or simply "user interface") that allows a user to navigate, browse, share, manage, and / or otherwise experience digital content using the client device 100. For example, the user interface provider 102 provides a user interface that facilitates the presentation of digital content on the client device 100 (e.g., a display screen) or a display device coupled to or otherwise associated with the client device 100. Similarly, the user interface provider 102 provides a user interface that facilitates viewing and interacting with digital content provided via the client device 100. For example, the user interface provider 102 may provide a user interface that allows a user to interact with digital content via one or more touch gestures or other types of user input.
[0035] More specifically, in one or more embodiments, the user interface provider 102 provides a user interface associated with a hybrid application having local and non-local elements. Specifically, the user interface provider 102 may provide content associated with non-local elements within a local container (e.g., a local element). For example, the user interface provider 102 provides a user interface that includes web content presented within a local container. Additionally, the user interface provider 102 may facilitate the presentation of other types of digital content (e.g., audio, video, web pages, documents) depending on the specific application of the hybrid application manager 106.
[0036] As Figure 1 Further illustrated, the input system 101 includes a user input detector 104 that detects, identifies, and / or receives user interactions and converts the user interactions into user input (e.g., a user command or request). For example, the user input detector 104 may detect user interactions from a keyboard, mouse, screen, or any other input device that is part of or communicates with the client device 100. In the case where a touch screen is used as an input device, the user input detector 104 detects one or more touch gestures (e.g., a swipe gesture, a tap gesture, a pinch gesture, a reverse pinch gesture) provided by the user via the touch screen. In one or more embodiments, the user provides one or more touch gestures regarding and / or in response to interaction features provided via the user interface associated with the hybrid application. Additionally or alternatively, the user input detector 104 receives data representing user interactions. For example, the user input detector 104 may receive one or more configurable parameters from the user, one or more user commands from the user, and / or other suitable user input.
[0037] The user interface provider 102 can utilize user input received from the user input detector 104 and / or other data to manage, control, and / or facilitate the use of the user interface. Generally, in response to the user input detector 104 detecting one or more user interactions, the user interface provider 102 can provide a user interface that allows the user to view, search, edit, share, navigate, and / or otherwise experience digital content while avoiding user input ambiguity due to misunderstandings of user interactions. For example, in response to the user input detector 104 detecting a touch gesture, the user interface provider 102 can facilitate user interaction with digital content presented via the user interface based on one or more characteristics of the hybrid application.
[0038] As mentioned above, and as Figure 1 illustrated in, the input system 101 also includes a hybrid application manager 106, which includes a local manager 112 and a non-local manager 114. In one or more embodiments, the local manager 112 allows local elements of the hybrid application to respond to user input. For example, the local manager 112 can include a local container, viewer, or other container of the client device. The non-local manager 114 allows non-local elements of the hybrid application to respond to user input. For example, the non-local manager 114 can include an operating system WebView, web thread, WebKit, or in some cases include non-local content. It is noteworthy that the non-local manager 114 can include a local component configured to display non-local content such as HTML content. As an example, the hybrid application manager 106 can include a hybrid application that includes a web application embedded or otherwise contained within a local application installed on the client device 100. Additionally, while the input system 101 is illustrated as including or managing a single hybrid application manager 106 for hybrid applications, one or more embodiments of the input system 101 include multiple application managers and / or a single hybrid application manager 106 that includes different types of hybrid applications.
[0039] For illustration, the hybrid application manager 106 can include a presentation application that provides online digital content (e.g., HTML content) to a user within a graphical user interface provided by local elements of the hybrid application. As will be described in more detail below, the hybrid application manager 106 can provide digital content that includes one or more interactive features provided to the user via the graphical user interface. For example, the hybrid application manager 106 can provide the presentation of photos, videos, or other digital content including hyperlinks, input icons, or other graphical features that enable the user to interact with the digital content via the graphical user interface associated with the hybrid application. However, while one or more embodiments described herein specifically relate to a presentation application for presenting photos or videos (e.g., slideshows) within a graphical user interface, it should be recognized that the features and functions described with respect to the presentation application also apply to other types of hybrid applications. As an example, one or more features described with respect to HTML slideshows or other digital content hosted on a mobile application can similarly apply to a game application having local and non-local elements. For example, a game application can include an online game application hosted on a local application that is installed on a client device.
[0040] As mentioned above, the hybrid application manager 106 can include a local manager 112 and a non-local manager 114. In one or more embodiments, the local manager 112 and the non-local manager 114 provide a user of the client device 100 with the presentation of digital content. Additionally, as will be described in more detail below, the local manager 112 and the non-local manager 114 can facilitate the receipt and processing (e.g., via a touchscreen interface) of user input received at the client device 100.
[0041] As mentioned above, the local manager 112 and the non-local manager 114 can cooperate to provide a user of the client device 100 with the presentation of digital content. For example, in one or more embodiments, the local manager 112 can provide a graphical user interface that includes digital content accessed online or provided from data stored on the client device 100. As an example, in the case where the local elements of the hybrid application include a local application installed on the client device 100, the local manager 112 can provide the presentation of digital content that includes content locally accessible on the client device 100. For example, the local manager 112 can access contact information or other data stored on the client device 100 (e.g., without accessing a remote server) and provide the contact information or other data to the user via the graphical user interface associated with the local elements of the hybrid application. Additionally, the local manager 112 can access online content (e.g., HTML content) associated with non-local elements of the hybrid application and provide the online content within the graphical user interface.
[0042] In addition to providing digital content via the graphical user interface, the local manager 112 can also access the features and functions of the client device 100 in performing one or more functions of the hybrid application. For example, the local manager 112 can access the camera, Global Positioning System (GPS), accelerometer, compass, or other functions provided by the client device 100. Additionally, the local manager 112 can access the functions provided by the device platform and / or operating system running on the client device 100.
[0043] As mentioned above, the non-local manager 114 can facilitate the presentation of digital content on the client device. For example, the non-local manager 114 can provide online digital content or other remotely accessible content via the client device 100 on the graphical user interface associated with the hybrid application. In one or more embodiments, the non-local manager 114 accesses HTML content and provides the HTML content via a web viewer on the display area of the client device 100. Additionally or alternatively, the non-local manager 114 accesses HTML content or other digital content and provides the digital content within the graphical user interface presented by the local manager 112. Thus, from the user's perspective, the presentation of digital content can include online content accessed via the non-local manager 114 and provided within the graphical user interface window. Thus, while the local elements can contribute to presenting digital content within the graphical user interface, the presentation by the hybrid application can have a similar or identical appearance to a web application without local elements for the user.
[0044] In addition to providing digital content via the graphical user interface, the local manager 112 and / or the non-local manager 114 can facilitate the reception and processing of user input received at the client device 100. For example, the local manager 112 and / or the non-local manager 114 can receive and process one or more touch gestures that constitute an input event received by the client device 100. Additionally, while the local manager 112 and the non-local manager 114 can each have the ability to independently receive and process user input, one or more embodiments of the hybrid application manager 106 cooperate with the input manager 108 to selectively use the local manager 112 or the non-local manager 114 to process one or more user inputs from a series of inputs.
[0045] As Figure 1As shown, the client device 100 includes an input manager 108 that facilitates the reception and processing of user input according to one or more embodiments described herein. Specifically, the input manager 108 can cooperate with the hybrid application manager 106 to clearly and unambiguously respond to detected input events and avoid input ambiguity regarding user input that can be differently processed by the local manager 112 and the non-local manager 114. For example, as will be described in additional detail below, the input manager 108 can detect one or more user inputs and selectively channel the user input to one of the local or non-local elements of the hybrid application.
[0046] As Figure 1 As shown, the input manager 108 includes an input listener 116. The input listener 116 can monitor user input received by the client device 100 and detect or otherwise identify a series of received user inputs. In one or more embodiments, the input listener 116 detects each user input in a series of user inputs when each user input in the series of user inputs is received. For example, in the case where a user provides a touch gesture that includes multiple user inputs, the input listener 116 can detect or otherwise identify each user input of the touch gesture when the touch gesture is received by the client device 100. Additionally, in one or more embodiments, the input listener 116 monitors and detects which user input in a series of user inputs has been received and processed via the non-local and / or local elements of the hybrid application.
[0047] As Figure 1 As shown, the input manager 108 also includes a channel manager 118 that determines whether to channel one or more user inputs to the local or non-local elements of the hybrid application. For example, the channel manager 118 can determine to channel one or more inputs of an input event through a first channel (e.g., the non-local manager 114) for processing by the non-local elements of the hybrid application, or alternatively channel one or more inputs of the input event through a second channel (e.g., the local manager 112) for processing by the local elements of the hybrid application.
[0048] When it is determined whether to transmit an input channel for processing by a local element or a non - local element, the input manager 118 can appropriately transmit one or more user inputs. Specifically, the channel manager 118 can facilitate the transmission of one or more user inputs by routing, directing, or otherwise providing incoming user inputs for processing by the local or non - local elements of the hybrid application. In one or more embodiments, the input manager 118 transmits user inputs for processing by only one of the non - local or local elements of the hybrid application. For example, if the input manager 118 transmits a series of user inputs for processing by a non - local element, the input manager 118 can additionally prevent any of the user inputs in the series of user inputs from being provided to the local elements of the hybrid application. In such a case, only one of the non - local and local elements receives and processes the response to each user input within the series of user inputs.
[0049] Additionally, in one or more embodiments, the channel manager 118 causes the hybrid application manager 106 to implement a comprehensive response to a series of user inputs. Specifically, the channel manager 118 can cause the non - local manager 114 and the local manager 112 to each respond to different user inputs that make up an input event. For example, while the channel manager 118 can transmit each user input in a series of user inputs to only one of the non - local and local elements, the channel manager 118 can transmit different portions of the series of user inputs to different elements of the hybrid application. As will be described in more detail below, the channel manager 118 can transmit a first plurality of series of user inputs to the non - local element while preventing any of the user inputs in the first plurality of series of user inputs from being provided to the local element. Additionally, the channel manager 118 can transmit a second plurality of series of user inputs to the local element while preventing any of the user inputs in the second plurality of series of user inputs from reaching the non - local element.
[0050] In one or more embodiments, the input manager 108 includes an application programming interface (API) and / or JavaScript that operates on the client device 100 according to an opt-in contract. Specifically, the input manager 108 can operate on the client device 100 and manage how user input is received and channeled to various applications on the client device 100. For example, the input manager 108 can include APIs that the hybrid application manager 106 calls in various situations, such as when non-native elements and / or native elements reject a particular user input or a series of user inputs. Additionally, the input manager 108 can include a database of user inputs or predefined touch gestures or have access to a database of user inputs or predefined touch gestures, and the input manager 108 and / or the hybrid application manager 106 utilize the database of user inputs or predefined touch gestures in providing various responses to incoming user input.
[0051] Additionally, as Figure 1 shown, the client device 100 can include a data storage device 110 that includes input data 120. Specifically, the input data 120 can include any information associated with various input events. In one or more embodiments, the input data 120 includes information associated with various touch gestures, which the hybrid application manager 106 and / or the input manager 108 access and identify the touch gesture corresponding to an incoming or received series of inputs. For example, when the input system 101 receives one or more inputs in a series of user inputs, the local manager 112 can access the input data 120 stored on the client device 100 and extracted from a storage device of various touch gestures that the local manager 112 can receive and process. In one or more embodiments, the local manager 112 has access to the data storage device 110, while the non-local manager 114 does not have access to the data storage device 110. Additionally, in one or more embodiments, the input manager 108 accesses the input information 120 to determine or otherwise identify a specific input event (e.g., a touch gesture) corresponding to a series of received user inputs.
[0052] Figure 2 A flowchart illustrating the interaction between the hybrid application manager 106 and the input manager 108 is shown. Specifically, Figure 2 an example embodiment is shown in which the input manager 108 collaborates with the non-local manager 114 and the local manager 112 to clearly and accurately respond to a received input event that includes any number of user inputs. Specifically, Figure 2 an input gesture is received at the client device 100 and processed according to the principles described herein.
[0053] AsFigure 2 As shown, the input manager 108 detects 202 a first input. Specifically, as mentioned above, the input manager 108 may include an input listener 116 that monitors incoming user input and detects the first input of an input event. The first input may refer to the first user input in a series of user inputs that make up an input event. For example, in the case where the input event refers to a touch gesture, the first input may refer to the input received when a finger, stylus, or other object touches the touch screen on the client device 100 to initiate a touch gesture. In the case of a tap gesture or other single-input touch gesture, the first user input may mark the start and end of the input event. Alternatively, in the case of a swipe gesture or other touch gesture that includes multiple incremental inputs, the first input may refer to the initial contact that initiates the touch gesture or input event.
[0054] Upon detecting the first input, the input manager 108 transmits 204 the first input to the non-native manager 114 channel of the hybrid application manager 106 (e.g., for processing by non-native elements). Specifically, the input manager 108 first transmits the first input to the non-native element channel of the hybrid application upon detecting the first input. Upon receiving the first input, the non-native element begins to process the response to the input event that includes the first input. In one or more embodiments, the input manager 108 transmits the first input to the non-native manager 114 regardless of whether the non-native manager 114 is better equipped than the native manager 112 (e.g., native elements) to process a particular user input or the input event that includes the first input. Thus, the input manager 108 first transmits, routes, or otherwise provides the first input in a series of inputs to the non-native manager 114 channel. Additionally, in one or more embodiments, transmitting the first input to the non-native manager 114 channel also includes preventing the native manager 112 from receiving the first input.
[0055] As Figure 2 shown, upon receiving the first input, the non-native manager 114 processes 206 the first input. For example, in the case of a touch gesture, the non-native manager 114 may begin to respond to the first input corresponding to a finger or other object that touches the touch screen interface. In one or more embodiments, the non-native manager 114 provides a visual indication of the response to the first input via the graphical user interface.
[0056] The input manager 108 can also detect 208 a second input. Specifically, the input listener 116 detects a second input in a series of user inputs that constitute an input event. The first input and the second input can refer to sequential user inputs in the series of user inputs detected by the input listener 116. For example, in the case where the input event includes a touch gesture in which the user's finger is in continuous contact with the touchscreen interface, the first input and the second input can refer to incremental user inputs sampled by the input listener 116 over a predefined time period. For example, the input listener 116 can detect or identify the placement of a finger or other object that touches the touchscreen of the client device 100 multiple times per second. Thus, the user input can refer to each captured position of the finger relative to the display interface. Alternatively, the input listener 116 detects each change in the position of the finger or other object relative to the display interface, rather than detecting user inputs at predefined time increments. Thus, each input in a series of inputs can refer to each change in the position of the finger or other object relative to the touchscreen interface.
[0057] Upon detecting the second input, the input manager 108 channels 210 the second input to the non-local manager 114. Specifically, the input manager 108 uses the same channel that was used to channel the first input to the non-local manager 114 to channel the second input to the non-local manager 114. Additionally, although Figure 2 FIG. illustrates an embodiment in which only two inputs are channeled to the non-local manager 114, it should be appreciated that the input manager 108 can channel any number of sequential inputs detected by the input manager 108 to the non-local manager 114.
[0058] The non-local manager 114 can reject one or more user inputs. For example, as Figure 2 shown, the non-local manager 114 rejects 212 the second input in a series of user inputs received by the non-local manager 114. In one or more embodiments, the non-local manager 114 rejects the second input based on a combination of the second input and the first input. For example, the combination of the first input and the second input can constitute an invalid touch gesture (or a portion of an invalid touch gesture) that the non-local manager 114 rejects or otherwise determines not to process. Alternatively, in one or more embodiments, the non-local manager 114 rejects a second input that is unrelated to the first input. For example, as Figure 2 shown, the non-local manager receives and processes the first input and rejects a second input that is unrelated to the first input.
[0059] When rejecting a second input, the non-local manager 114 may provide an indication of the rejection to the input manager 108. Additionally, in one or more embodiments, the non-local manager 114 provides an indication or otherwise identifies each user input that has been rejected by the non-local element. For example, in a case where the non-local element has received and processed a response to a first input but has not received and processed a response to a second input, the non-local manager 114 provides an indication that only the second input has been rejected. Alternatively, the non-local element 14 may provide an indication of any number of additional inputs that the non-local element has rejected 112.
[0060] The non-local manager 114 may reject one or more user inputs in various situations. As an example, the non-local element may not respond to a user input or a series of user inputs provided to the non-local element. For example, in a case where the non-local element does not have a predefined response (e.g., a dead zone), a touch gesture may include an interaction of a user with a display area on a touch screen interface. In such a case, the non-local element may simply not provide a response to the detected touch gesture. The non-local manager 114 may react by providing an indication or notification of non-responsiveness of the non-local manager 114 in response to the received user input. Additionally, in one or more embodiments, the non-local manager 114 may communicate to the input manager 108 that the rejection is due to the non-local manager 114 not responding to one or more inputs.
[0061] Additionally, even in a case where the non-local manager 114 may respond to one or more individual user inputs received within a specific area of the graphical user interface, the received input or series of inputs may not correspond to one or more predefined touch gestures that the non-local manager 114 is equipped to receive and process. Specifically, the non-local manager 114 may have the ability to respond to one or more basic touch gestures but not include the ability to respond to multiple complex touch gestures. As an example, the non-local manager 114 may have the ability to respond to one or more single-finger touch gestures (e.g., a tap gesture, a swipe gesture) but not have the ability to respond to one or more multi-finger touch gestures (e.g., a double-tap gesture, a pinch gesture, a reverse pinch gesture). Thus, in a case where the input manager 108 detects a multi-finger touch gesture and channels the input of the multi-finger touch gesture to the non-local manager 114, the non-local element may reject the touch gesture. Thereafter, the non-local manager 114 may provide an indication of the rejection to the input manager 108.
[0062] In one or more embodiments, the non-native manager 114 rejects one or more user inputs by relinquishing control of the user input based on instructions associated with digital content presented via a hybrid application. For example, in the case where the hybrid application facilitates the presentation of HTML content, the author of the HTML content may expect native elements of the hybrid application to handle a particular user input or series of user inputs rather than non-native elements. In contrast to non-native elements of the hybrid application, the author may indicate that intention within the HTML content by including instructions that the native elements should handle the particular input or series of inputs. Thus, when the non-native manager 114 detects a particular touch gesture and the HTML content includes instructions for the non-native manager 114 to cede control of the particular touch gesture to the native manager 112, the non-native manager 114 may reject the touch gesture by providing an indication of the relinquished control of the input to the input manager 108.
[0063] In each of the cases where the non-native manager 114 rejects one or more user inputs, in addition to information associated with the rejected input, the non-native manager 114 may provide an indication of the rejection to the input manager 108. For example, in the case where the non-native manager 114 has processed one or more inputs of an input event but not additional inputs of the input event, the non-native manager 114 may also provide information indicating which of the inputs have been processed by the non-native manager 114 and which of the inputs have been rejected. Alternatively, in one or more embodiments, the input manager 108 monitors incoming user inputs and detects or otherwise determines which of the inputs in an input event have been processed by the non-native manager 114 and which inputs have not been processed by the non-native manager 114 or the native manager 112.
[0064] Upon receiving an indication that the non-native manager 114 has rejected one or more user inputs, the input manager 108 may implement a comprehensive reaction to a series of user inputs. Specifically, in the case where the non-native manager 114 receives and processes one or more responses to user inputs (e.g., a first input) of an input event, the input manager 108 may transmit one or more of the rejected inputs and / or additional inputs of the input event to the native element channel of the hybrid application. For example, as Figure 2As shown, the input manager 108 transmits a second input to the local manager 112 channel. As mentioned above, the input manager 108 may transmit the second input to the local manager 112 channel from a communication channel used to transmit the first and second inputs to the non-local manager 114 channel on a different communication channel. Alternatively, the input manager 108 may use the same communication channel as the communication channel used to transmit the first and second inputs to the non-local manager 114 channel to transmit the second input to the local manager 112 channel.
[0065] In one or more embodiments, the non-local manager 114 implements a comprehensive response to a series of user inputs by transmitting one or more input channels according to the current input state stored on the client device 100. For example, the initial input state may indicate the destination of any incoming input to the non-local manager 114. When the input manager 108 receives an indication of rejection, the input manager 108 may change the input state to indicate the destination of any incoming input to the local manager 112. Additionally, upon detecting a completion input event, the input manager 108 may change the input state back to the default state (e.g., the input state indicates the destination of incoming input to the non-local manager 114). Thus, the input manager 108 may respond to incoming input by transmitting the incoming input channel according to the current input state stored on the client device 100 (e.g., on the data storage device 110).
[0066] Additionally, in the case where the input manager 108 has transmitted one or more input channels to the local manager 112, the input manager 108 may continue to transmit additional inputs to the local manager 112 channel throughout the input event. Specifically, once the input manager 108 switches from transmitting the input channel to the non-local manager 114 to transmitting the input channel to the local manager 112, the input manager 108 may continue to transmit the detected inputs of the input event to the local manager 112 channel. For example, as Figure 2 shown, the input manager 108 may detect 220 additional inputs. The additional inputs may be part of the same touch gesture or the same input event as the first and second inputs. Additionally, as Figure 2 shown, the input manager 108 transmits the additional inputs to the local manager 112 channel. In one or more embodiments, the input manager 108 transmits the additional inputs of the input event and any other additional inputs to the local manager 112 channel.
[0067] Additionally, although one or more embodiments described herein relate to determining an intermediate gesture or whether the input manager 108 should switch from channeling to the non-local manager 114 to channeling to the local manager 112 after receiving a first plurality of user inputs, it should be recognized that the input manager 108 can facilitate channeling to the local manager 112 at the start of a touch gesture. As an example, HTML content can indicate that any possible touch gesture originating from a specific point on a touchscreen interface should be received and processed by a local container (e.g., a viewer) rather than the HTML content. Thus, at the start of the received user input, the HTML content can immediately notify the input manager 108 that the initial input and any additional user inputs should be channeled to the local container. Thus, in one or more embodiments, the local manager 114 processes the response to the entire touch gesture rather than implementing a combined response that includes responses from both the local manager 112 and the non-local manager 114.
[0068] Although not explicitly shown in Figure 2 the input manager 108 can determine that the user input marks the end of an input event and channel the last input of the input event to a local element (e.g., in the case where the input manager 108 has previously switched from channeling to the non-local manager 114 to channeling from the local manager 112 for the input event). When determining the end of an input event, the input manager 108 can monitor incoming user input to detect one or more additional inputs that signal the start of a new input event (e.g., a new touch gesture). When a new input event is detected (e.g., a new input within a received series of new inputs), the input manager 108 can resume channeling the new input and any additional inputs of the new input event to the non-local manager 114 until the new input event is complete or until the non-local manager 114 provides an indication that the non-local manager 114 has rejected one or more inputs of the new input event.
[0069] Figure 3A FIG. illustrates an example client device 100 that includes a graphical user interface provided via a touchscreen interface. Specifically, Figure 3A FIG. illustrates an example client device 100 that can implement one or more of the features and functions described above in connection with Figure 1 and 2 As shown, the client device 100 includes a handheld device with a touchscreen enabled (e.g., a device sized and configured to be held and used in a user's single hand). As described below with reference to Figure 3A FIG. Figure 6As discussed, other client devices (e.g., tablet computers, laptop computers, etc.) may implement the features and methods of the various embodiments. Additionally, although one or more embodiments described herein are described in terms of receiving and processing user input received via a touchscreen interface, it should be recognized that client device 100 may receive and process inputs other than via touch gestures and other touch-based inputs. Thus, the use of a touchscreen-enabled handheld device and in particular Figure 3A - 3B the mobile phone in
[0070] As Figure 3A shown, client device 100 may provide or display a rendering of digital content 306 via graphical user interface 302. More specifically, as Figure 3A shown, graphical user interface 302 displays digital content including a magazine article titled "10 Most Scenic Hiking Spots in Washington". Additionally, in one or more embodiments, client device 100 provides a rendering of digital content 306 via touchscreen 304 capable of receiving user input via touch gestures provided by a user placing a finger, stylus, or other object in contact with the touchscreen 304. It should be recognized that client device 100 may receive and process any number and variety of touch gestures. Additionally, it should be recognized that client device 100 may receive and process various user inputs regarding different types of hybrid applications. Thus, the following description of receiving and processing user input with reference to Figure 3A - 3B the graphical user interface illustrated in
[0071] is provided by way of example and may be implemented with reference to other embodiments described herein.
[0072] Additionally, client device 100 may provide various interaction features via graphical user interface 302 and touchscreen 304. For example, as Figure 3AAs shown, the graphical user interface 302 may include a display of one or more selectable icons 308. In one or more embodiments, a user may tap on a selectable icon 308 to provide a slide show of one or more images included within digital content 306. Additionally, as Figure 3A shown, the graphical user interface 302 may include one or more hyperlinks 310a-b that a user can select and cause the client device 100 to access additional online content and / or perform various functions. For example, selecting hyperlink 310a that reads "Seattleite" may cause the client device 100 to access a definition for "Seattleite" (e.g., via an online dictionary or a dictionary stored on the client device 100). As another example, selecting a second hyperlink 310b that reads "WTA.org" may cause the client device 100 to navigate to the website WTA.org via a web viewer.
[0073] In one or more embodiments, a user may interact with digital content 306 using various touch gestures. Additionally, the client device 100 may include an input system 101 that includes similar features and functions as described above in connection with Figure 1 - 2 . Specifically, upon receiving one or more user inputs regarding the graphical user interface 302 associated with a hybrid application (e.g., a magazine application), the input system 101 may facilitate providing the user input to a non-native element of the hybrid application or a native element of the hybrid application to process in response to the received user input.
[0074] As a first example, if a user desires to scroll and read a magazine article titled "10 Most Scenic Hiking Spots in Washington," the user may use a finger to swipe upward on the touchscreen 304. In response to this upward swipe touch gesture, the input manager 108 may detect a first user input of the touch gesture corresponding to an initial contact of the user's finger touching the touchscreen 304. The input manager 108 may first transmit the first user input to the HTML content (e.g., non-native element) channel. Additionally, the input manager 108 may continue to transmit each incremental input that constitutes the upward swipe touch gesture to the HTML content channel, where the HTML content is equipped to process the upward swipe touch gesture and scroll the magazine article.
[0075] As another example, if a user wants to select one or more of the hyperlinks 310a-b, the user can use a tap gesture that includes a single user input to select one of the hyperlinks 310a-b. In response to the tap gesture, the input manager 108 can detect the single input of the input event and transmit the input to the HTML content channel. In one or more embodiments, the HTML content is configured to handle the single input of selecting one or more of the hyperlinks 310a-b and respond to the tap gesture by navigating to the web page or other source of the digital content associated with the selected hyperlink.
[0076] Although the HTML content is capable of receiving and handling tap gestures regarding the hyperlinks 310a-b, the digital content 306 can include one or more dead zones or blank spaces that do not have a predefined response to a specific user input. For example, as Figure 3A shown, the rendering of the HTML content includes blank space 312 and other areas within the graphical user interface 302 for which the HTML content does not include a predefined response to a tap gesture. Specifically, if the user taps on the blank space 312 on the touch screen 304, the input manager 108 detects the user input and transmits the user input to the HTML content channel. In response, the HTML content rejects the user input by providing an indication to the input manager 108 that the HTML content has not responded to the user input or otherwise rejects the user input. The input manager 108 can then transmit the rejected user input to the local container channel that hosts the HTML content, and the local container can provide a response to the tap gesture. For example, in response to receiving the user input on the blank space 312, the local container can provide one or more menu options via the graphical user interface 302.
[0077] Additionally, as Figure 3A shown, the user can access the slides of the digital content 306 by selecting the selectable icon 308. For example, in response to receiving a tap gesture on the selectable icon 308 on the touch screen 304, the input manager 108 can detect the user input for the tap gesture and selectively transmit the user input to the HTML content or the local container channel according to one or more embodiments described herein. The HTML content can first receive the user input and respond to the selection of the selectable icon 308 by providing the slides of the digital content 306 as Figure 3B illustrated.
[0078] In response to receiving the selection of the selectable icon 308, the client device 100 provides a slide show that includes one or more images included in an article titled "10 Most Scenic Hiking Spots in Washington" as Figure 3A shown. Additionally, similar to the above combinationFigure 3B In the described presentation, the client device 100 can provide various interactive features via the graphical user interface 302 and the touch screen 304. For example, the user can browse one or more images by swiping left or right on the touch screen 304. Additionally, the user can exit the image slideshow and return to the article view as Figure 3A shown.
[0079] In one or more embodiments, the user can scroll to the next image in the slideshow by swiping a finger or other object to the left on the touch screen 304. In the case where the HTML content recognizes the touch gesture, the input manager 108 can transmit each input of the swipe gesture to the HTML content channel to process the response to the swipe gesture. For example, when Figure 3B the image shown is the first image in a slideshow of ten photos, the user can provide a left swipe touch gesture and the input manager 108 can transmit each input of the left swipe touch gesture to the HTML content channel to process the response of shifting an image to the left and replacing the image with the next image in the slideshow.
[0080] Upon reaching the last image in the slideshow, the user can provide a left swipe gesture. Similar to other left swipe gestures, the input manager 108 can first transmit each detected input of the left swipe gesture to the HTML content channel. However, since the slideshow does not include any additional images to the right of the last image, the HTML content may not recognize the left swipe touch gesture or may not include instructions for processing the left swipe touch gesture when presenting the last image of the slideshow via the graphical user interface 302. Therefore, the input manager 108 can detect that the HTML content does not respond to the left swipe gesture and implement a comprehensive response to the left swipe gesture.
[0081] For example, in one or more embodiments, a left swipe gesture includes an initial user input indicating that the user's finger touches the touch screen 304 and one or more additional inputs indicating the movement of the user's finger on the touch screen 304. Additionally, since the initial contact of the user's finger can correspond to any number of touch gestures that the HTML content is equipped to handle (even while the last image of the slide is presented via the graphical user interface 302), the input manager 108 will first transmit the first one or more inputs in the left swipe gesture to the HTML content channel for processing the user input. At some point during the left swipe gesture, the HTML content may reject the user input, identify that a series of user inputs corresponds to an invalid touch gesture, or finally determine that the local container is better equipped to handle the left swipe gesture. In response, the HTML content rejects the touch gesture and provides an indication of the rejection or makes a call to the input manager 108 to indicate that the HTML content has rejected one or more inputs in the left swipe gesture. Additionally, in one or more embodiments, the HTML content provides information indicating which inputs in a series of inputs have been processed by the HTML content and which inputs in the series of inputs have been rejected.
[0082] In response to receiving an indication of the rejection of the user input by the HTML content, the input manager 108 stops transmitting the user input of the left swipe gesture to the HTML content channel and determines the point in the series of user inputs at which the HTML content rejects the series of inputs. The input manager 108 transmits the rejected user input and additional user inputs in the series of user inputs to the local container channel to complete the response to the left swipe gesture. Thus, in the case where the user has swiped left on the last image in the slide, the HTML content may first respond and when it is determined that the HTML content has rejected the left swipe gesture, the local container can complete the response to the left swipe gesture. Thus, in response to swiping left on the last image of the slide, the local container can respond by moving to the next slide of the subsequent article in the electronic magazine, returning to Figure 3A the magazine view illustrated in or providing another response.
[0083] Additionally, in one or more embodiments, the HTML content and the input manager 108 identify the rejection of one or more inputs in a series of user inputs as early as possible in the input event. For example, as soon as the HTML content determines that the input event corresponds to an invalid touch gesture, the HTML content can notify the input manager 108 of the rejected input, thereby avoiding passing the user input through the web thread and then returning via the user interface thread for response. Thus, implementing a comprehensive response earlier in the series of inputs can prevent delays in the responsiveness to the input event.
[0084] Figure 1 - 3B , corresponding texts and examples are provided for receiving input events (e.g., touch gestures) and handling responses to input events regarding hybrid applications in many different systems and devices. In addition to the foregoing, one or more embodiments may also be described according to flowcharts including actions and steps in a method for achieving a particular result. For example, Figure 4 and 5 illustrates a flowchart of an exemplary method according to one or more embodiments. Regarding Figure 4 and 5 the methods described may be performed with fewer or more steps / actions or the steps / actions may be performed in a different order. Additionally, the steps / actions described herein may be repeated or performed in parallel with each other or in parallel with different instances of the same or similar steps / actions.
[0085] Figure 4 illustrates a flowchart of an example method 400 for receiving and processing user input. Specifically, method 400 illustrates an embodiment of a method for receiving and processing one or more touch gestures on a graphical user interface on client device 100. As Figure 4 shown, method 400 includes (e.g., by at least one processor) an action 410 of detecting a first user input of a touch gesture on a graphical user interface associated with a hybrid application including local elements and non-local elements. The hybrid application includes a hybrid mobile application on client device 100 (e.g., a mobile device). Additionally, in one or more embodiments, the non-local elements include HTML content and the local elements include a local container on client device 100. Specifically, the hybrid application may include HTML content encapsulated within a local container.
[0086] As mentioned above, the touch gesture may include various touch gestures. Examples of touch gestures may include single-input touch gestures (e.g., tap gestures) or multi-input touch gestures (e.g., swipe gestures). Additionally, the touch gesture may include single-finger touch gestures (e.g., tap gestures, swipe gestures) or multi-finger touch gestures (e.g., double-tap gestures, pinch gestures, reverse pinch gestures). In one example, the touch gesture includes a swipe gesture with multiple inputs. For example, the first input may refer to an input object (e.g., a finger, a stylus) that first touches the touchscreen interface of client device 100. The second input may refer to an incremental input or the movement of the input object across the touchscreen interface of client device 100 in a particular direction. Additionally, in one or more embodiments, the touch gesture may include multiple related touch inputs.
[0087] Method 400 may further include (e.g., by at least one processor) an action 420 of transmitting a first user input to a non-native element channel of a hybrid application. Action 420 may involve transmitting the first user input to the non-native element channel according to a contract for processing user input between one or more non-native elements and native elements of the hybrid application. For example, the contract may refer to an opt-in contract for accessing the hybrid application and controlling how input is received and provided to the native and non-native elements of the hybrid application. In one or more embodiments, the contract may also facilitate communication between the hybrid application and an application programming interface (API) to implement transmitting one or more user inputs to the native elements and / or non-native element channels of the hybrid application.
[0088] Additionally, method 400 may include (e.g., by at least one processor) an action 430 of channel-transmitting a second input regarding a touch gesture of a graphical user interface associated with the hybrid application. Further, method 400 may include an action 440 of transmitting a second input of the touch gesture to the non-native element channel of the hybrid application. Action 440 may involve (e.g., by at least one processor) transmitting the first input and the second input to the non-native element channel through a first channel. For example, action 440 may involve providing one or more user inputs to a web thread, WebView, WebKit, HTML content, or other web-based component.
[0089] Method 400 further includes an action 450 of receiving an indication that a second user input has been rejected by a non-native element of the hybrid application. Receiving the indication that the second user input has been rejected may involve receiving an indication from the non-native element or that it cannot process a reply to the second user input. In one or more embodiments, receiving the indication that the second user input has been rejected involves receiving an indication that the non-native element has rejected a combination of the first user input and the second user input. Additionally, in one or more embodiments, receiving the indication that the non-native element has been rejected involves receiving an indication that the non-native element has relinquished control of the touch gesture and / or any additional user input associated with the first user input and the second user input.
[0090] Method 400 further includes (e.g., by at least one processor) an action 460 of transmitting the second user input to a native element channel of the hybrid application in response to receiving the indication that the second user input has been rejected by the non-native element of the hybrid application. Action 460 may involve transmitting the second input to the native element channel through a second channel. For example, action 460 may involve providing one or more user inputs to a custom native container, viewer, or other container on the client device 100.
[0091] Additionally, although not shown in Figure 4shown, but method 400 may also include detecting one or more additional user inputs of a touch gesture and transmitting the (one or more) additional user inputs of the touch gesture to a native element channel of the hybrid application. In one or more embodiments, method 400 includes transmitting any additional user inputs of the touch gesture until the end of the touch gesture or an input event including one or more touch gestures is detected. Additionally, in one or more embodiments, method 400 also includes rejecting one or more additional inputs (e.g., any input after a second user input of a touch gesture) from being transmitted to non-native elements of the hybrid application.
[0092] Figure 5 FIG. illustrates a flowchart of an example method 500 for receiving and processing user input. Specifically, method 500 illustrates one embodiment of a method for receiving and processing one or more touch gestures on a graphical user interface of client device 100. As Figure 5 shown, method 500 includes an action 510 of detecting one or more inputs of a touch gesture with respect to a graphical user interface associated with a hybrid application (e.g., by at least one processor). The hybrid application includes native elements and non-native elements. For example, the native elements may include native containers, and the non-native elements may include HTML content.
[0093] As Figure 5 shown, method 500 includes an action 520 of transmitting one or more inputs of a touch gesture to a non-native element channel of the hybrid application (e.g., by at least one processor). Method 500 also includes an action 530 of receiving an indication of rejection of one or more inputs of the touch gesture from the non-native elements of the hybrid application. Additionally, method 500 includes an action 540 of transmitting one or more inputs of the touch gesture to a native element channel of the application (e.g., by at least one processor) in response to receiving the indication of rejection of one or more inputs of the touch gesture.
[0094] In one or more embodiments, method 500 includes an action of transmitting a first plurality of user inputs of a touch gesture to a non-native element channel of the hybrid application. For example, method 500 may include an action of transmitting a first portion of the touch gesture to the non-native element channel until one or more user inputs of the touch gesture are rejected by the non-native elements. Additionally, method 500 may include an action of transmitting a second plurality of user inputs (e.g., a second portion of the touch gesture) of the touch gesture to a native element channel of the hybrid application. For example, method 500 may include an action of rerouting or redirecting inputs from non-native elements of the hybrid application to native elements of the hybrid application in the middle of a touch gesture including a plurality of user inputs.
[0095] Additionally, in one or more embodiments, the method includes the action of transmitting one or more user inputs to a non-native element channel of a hybrid application according to a default input state. For example, the input state may refer to a specific channel or destination of a user input (e.g., a non-native element or a native element). Thus, the default setting of the contract for the method 500 that controls the reception and processing of user inputs may involve first transmitting each user input of a touch gesture to the non-native element channel of the hybrid application. Alternatively, while the method 500 may include changing the input state to transmit user inputs to the native element channel of the hybrid application, one or more embodiments of the method 500 include the action of reverting to the default input state upon detecting the completion of a touch gesture or other input event that includes multiple touch gestures. Thus, in one or more embodiments, the method 500 may include the action of detecting at least one input in a second touch gesture regarding a graphical user interface associated with the hybrid application and transmitting at least one input in the second touch gesture to the non-native element channel of the hybrid application according to the reverted default input state.
[0096] As discussed in more detail below, embodiments of the present disclosure may include or utilize a special-purpose computer or a general-purpose computer including computer hardware, such as one or more processors and system memory. Embodiments within the scope of the present disclosure also include physical media and other computer-readable media for carrying or storing computer-executable instructions and / or data structures. Specifically, one or more of the processes described herein may be at least partially implemented as instructions embodied in a non-transitory computer-readable medium and executable by one or more computing devices (e.g., any of the media content access devices described herein). Generally, a processor (e.g., a microprocessor) receives instructions from a non-transitory computer-readable medium (e.g., memory, etc.) and executes those instructions, thereby performing one or more processes, including one or more of the processes described herein.
[0097] A computer-readable medium can be any available medium that can be accessed by a general-purpose computer system or a special-purpose computer system. A computer-readable medium that stores computer-executable instructions is a non-transitory computer-readable storage medium (device). A computer-readable medium that carries computer-executable instructions is a transmission medium. Thus, by way of example and not limitation, embodiments of the present disclosure may include at least two distinct types of computer-readable media: non-transitory computer-readable storage media (devices) and transmission media.
[0098] A non-transitory computer-readable storage medium (device) includes RAM, ROM, EEPROM, CD-ROM, solid state drives (“SSD”) (e.g., RAM-based), flash memory, phase change memory (“PCM”), other types of memory, other optical disk storage devices, magnetic disk storage devices, or any other medium that can be used to store desired program code units in the form of computer-executable instructions or data structures and that can be accessed by a general purpose computer or a special purpose computer.
[0099] “Network” is defined as one or more data links that enable the transfer of electronic data between computer systems and / or modules and / or other electronic devices. When information is transferred or provided to a computer via a network or another communication connection (wired, wireless, or a combination of wired or wireless), the computer properly views the connection as a transmission medium. The transmission medium can include a network and / or data link that can be used to carry desired program code units in the form of computer-executable instructions or data structures and that can be accessed by a general purpose computer or a special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.
[0100] In addition, upon reaching various computer system components, program code units in the form of computer-executable instructions or data structures can automatically be transferred from the transmission medium to a non-transitory computer-readable storage medium (device) (or vice versa). For example, computer-executable instructions or data structures received via a network or data link can be buffered in RAM within a network interface module (e.g., “NIC”), and then ultimately transferred to the computer system RAM and / or to a less volatile computer storage medium (device) at the computer system. Accordingly, it should be understood that a non-transitory computer-readable storage medium (device) can be included in computer system components that also (or even primarily) utilize the transmission medium.
[0101] Computer-executable instructions include, for example, instructions and data that, when executed at a processor, cause a general purpose computer, a special purpose computer, or a special purpose processing device to perform a particular function or group of functions. In one or more embodiments, computer-executable instructions are executed on a general purpose computer to transform the general purpose computer into a special purpose computer implementing elements of the present disclosure. Computer-executable instructions can be, for example, binary, intermediate format instructions such as assembly language, or even source code. Although the subject matter has been described in language specific to structural features and / or methodological acts, it should be understood that the subject matter defined in the claims is not necessarily limited to the described features or acts. Rather, the described features and acts are disclosed as example forms of implementing the claims.
[0102] Those skilled in the art will recognize that the present disclosure may be practiced in network computing environments with many types of computer system configurations, including personal computers, desktop computers, laptop computers, messaging processors, handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile phones, PDAs, tablet computers, pagers, routers, switches, and the like. The present disclosure may also be practiced in distributed system environments where both local and remote computer systems linked by a network (either by hardwired data links, wireless data links, or a combination of hardwired and wireless data links) perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
[0103] Embodiments of the present disclosure may also be implemented in a cloud computing environment. In this specification, "cloud computing" is defined as a non-subscription model for enabling on-demand network access to a shared pool of configurable computing resources. For example, cloud computing may be adopted in the market to provide ubiquitous and convenient on-demand access to a shared pool of configurable computing resources. The shared pool of configurable computing resources can be rapidly provisioned via virtualization and released with low administrative effort or service provider interaction, and then scaled accordingly.
[0104] The cloud computing non-subscription model may include various features such as on-demand self-service, broad network access, resource pooling, rapid elasticity, measurable services, and the like. The cloud computing non-subscription model may also expose various service non-subscription models such as software as a service ("SaaS"), platform as a service ("PaaS"), and infrastructure as a service ("IaaS"). The cloud computing non-subscription model may also be deployed using different deployment non-subscription models such as private cloud, community cloud, public cloud, hybrid cloud, and the like. In this specification and in the claims, a "cloud computing environment" is an environment in which cloud computing is adopted.
[0105] Figure 6 A block diagram of an exemplary computing device 600 that may be configured to perform one or more of the processes described above is illustrated. It will be recognized that the client device 100 may be implemented by one or more computing devices such as the computing device 600. As Figure 6 shown, the computing device 600 may include a processor 602, a memory 604, a storage device 606, an I / O interface 608, and a communication interface 610, which may be communicatively coupled via a communication infrastructure 612. Although the exemplary computing device 600 is shown in FIG. 7, Figure 6The components illustrated in the figures are not intended to be limiting. Additional or alternative components may be used in other embodiments. Additionally, in some embodiments, computing device 600 may include fewer components than those shown in FIG. 7. The components of computing device 600 shown in the figures will now be described in additional detail. Figure 6 The components of computing device 600 shown in the figures.
[0106] In a particular embodiment, processor 602 includes hardware for executing instructions, such as those that make up a computer program. By way of example and not limitation, to execute instructions, processor 602 may retrieve (or fetch) instructions from an internal register, internal cache, memory 604, or storage device 606 and decode and execute them. In a particular embodiment, processor 602 may include one or more internal caches for data, instructions, or addresses. By way of example and not limitation, processor 602 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). The instructions in the instruction cache may be copies of the instructions in memory 604 or the storage device.
[0107] Memory 604 may be used to store data, metadata, and programs for execution by the processor. Memory 604 may include one or more of volatile memory and non-volatile memory, such as random access memory (“RAM”), read-only memory (“ROM”), solid state drive (“SSD”), flash memory, phase change memory (“PCM”), or other types of data storage devices. Memory 604 may be internal memory or distributed memory.
[0108] Storage device 606 includes a storage medium for storing data or instructions. By way of example and not limitation, storage device 606 may include the non-transitory storage media described above. Storage device 606 may include a hard disk drive (HDD), floppy disk drive, flash memory, optical disk, magneto-optical disk, magnetic tape, or universal serial bus (USB) drive, or a combination of two or more of these. Where appropriate, storage device 606 may include removable media or non-removable (or fixed) media. Storage device 606 may be internal or external to computing device 600. In a particular embodiment, storage device 606 is non-volatile, solid state memory. In other embodiments, storage device 606 includes read-only memory (ROM). Where appropriate, the ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory, or a combination of two or more of these.
[0109] The I / O interface 608 allows a user to provide input to the computing device 600, receive output from the computing device 600, and otherwise transfer data to and receive data from the computing device 600. The I / O interface 608 can include a mouse, keypad or keyboard, touch screen, camera, optical scanner, network interface, modem, other known I / O devices, or a combination of such I / O interfaces. The I / O interface 608 can include one or more devices for presenting output to a user, including but not limited to a graphics engine, a display (e.g., a display screen), one or more output drivers (e.g., a display driver), one or more audio speakers, and one or more audio drivers. In some embodiments, the I / O interface 608 is configured to provide graphic data to the display for presentation to the user. The graphic data can represent one or more graphical user interfaces and / or any other graphical content that can serve a particular implementation.
[0110] The communication interface 610 can include hardware, software, or both. In any case, the communication interface 610 can provide one or more interfaces for communicating (e.g., packet-based communication) between the computing device 600 and one or more other computing devices or networks. By way of example and not limitation, the communication interface 610 can include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network such as WI-FI.
[0111] Additionally or alternatively, the communication interface 610 can facilitate communication with one or more parts of an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or the Internet, or a combination of two or more of these networks. One or more parts of one or more of these networks can be wired or wireless. By way of example, the communication interface 610 can facilitate communication with a wireless PAN (WPAN) (e.g., a Bluetooth WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (e.g., a Global System for Mobile Communications (GSM) network), or other suitable wireless networks, or a combination thereof.
[0112] Additionally, communication interface 610 may facilitate communication of various communication protocols. Examples of communication protocols that may be used include, but are not limited to: data transmission media, communication devices, Transmission Control Protocol (“TCP”), Internet Protocol (“IP”), File Transfer Protocol (“FTP”), Telnet, Hypertext Transfer Protocol (“HTTP”), Hypertext Transfer Protocol Secure (“HTTPS”), Session Initiation Protocol (“SIP”), Simple Object Access Protocol (“SOAP”), Extensible Markup Language (“XML”) and its variants, Simple Mail Transfer Protocol (“SMTP”), Real-time Transport Protocol (“RTP”), User Datagram Protocol (“UDP”), Global System for Mobile Communications (“GSM”) technology, Code Division Multiple Access (“CDMA”) technology, Time Division Multiple Access (“TDMA”) technology, Short Message Service (“SMS”), Multimedia Messaging Service (“MMS”), Radio Frequency (“RF”) calling technology, Long Term Evolution (“LTE”) technology, wireless communication technology, in-band and out-of-band calling technology, and other suitable communication networks and technologies.
[0113] Communication infrastructure 612 may include hardware, software, or both hardware and software that couple components of computing device 600 to each other. By way of example and not limitation, communication infrastructure 612 may include Accelerated Graphics Port (AGP) or other graphics bus, Enhanced Industry Standard Architecture (EISA) bus, Front Side Bus (FSB), HyperTransport (HT) interconnect, Industry Standard Architecture (ISA) bus, wireless bandwidth interconnect, Low Pin Count (LPC) bus, memory bus, Micro Channel Architecture (MCA) bus, Peripheral Component Interconnect (PCI) bus, PCI-Express (PCIe) bus, Serial Advanced Technology Attachment (SATA) bus, Video Electronics Standards Association Local (VLB) bus, or other suitable bus or a combination thereof.
[0114] In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments of the disclosure. The various embodiments and aspects of the disclosure have been described with reference to the details discussed herein, and the drawings illustrate the various embodiments. The above specification and drawings are illustrative of the disclosure and should not be construed as limiting the disclosure. Numerous specific details have been described to provide a thorough understanding of the various embodiments of the disclosure.
[0115] The present disclosure may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. For example, the methods described herein may be performed with fewer or more steps / actions or the steps / actions may be performed in a different order. Additionally, the steps / actions described herein may be repeated or performed in parallel with each other or with different instances of the same or similar steps / actions. The scope of the present application is thus indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims
1. A method for receiving and processing touch inputs received via a touchscreen interface of an electronic computing device, the touch inputs received by the electronic computing device being for execution by a hybrid application, the method comprising: detecting, by at least one processor, a first user input of a touch gesture with respect to a graphical user interface associated with the hybrid application, the hybrid application including non-native elements and native elements; transmitting, by the at least one processor, the first user input of the touch gesture to a non-native element channel of the hybrid application, wherein the non-native elements of the hybrid application execute non-native functions in response to processing the first user input of the touch gesture; detecting, by the at least one processor, a second user input of the touch gesture with respect to the graphical user interface associated with the hybrid application; transmitting, by the at least one processor, the second user input of the touch gesture to the non-native element channel of the hybrid application; receiving, from the non-native elements of the hybrid application, a rejection indication that the second user input of the touch gesture has been rejected by the non-native elements of the hybrid application; transmitting, by the at least one processor, in response to receiving the rejection indication that the second user input of the touch gesture has been rejected by the non-native elements of the hybrid application, the second user input of the touch gesture to a native element channel of the hybrid application; executing, by the native elements of the hybrid application, native functions in response to processing the second user input of the touch gesture; transmitting, by the at least one processor, additional user input of the touch gesture associated with the first user input of the touch gesture and the second user input of the touch gesture to the native element channel of the hybrid application; channeling the additional user input of the touch gesture until an end of the touch gesture or an input event including one or more touch gestures is detected; and rejecting, by the at least one processor, that the additional user input of the touch gesture associated with the first user input of the touch gesture and the second user input of the touch gesture is channeled to the non-native elements of the hybrid application.
2. The method according to claim 1, wherein: the hybrid application resides on a client device associated with a user providing the touch gesture; and the non-native elements of the hybrid application include hypertext markup language content.
3. The method according to claim 2, wherein the native elements of the hybrid application include a native container stored on the client device.
4. The method according to claim 1, wherein: the touch gesture includes a swipe gesture; the first user input of the swipe gesture corresponds to an input object contacting the touchscreen interface; and the second user input of the swipe gesture corresponds to a direction of the input object relative to the touchscreen interface.
5. The method according to claim 1, wherein transmitting the first user input of the touch gesture to the non-native element channel of the hybrid application includes transmitting the first user input of the touch gesture to the non-native element channel of the hybrid application according to contact for processing the user input of the touch gesture between the non-native element and the native element of the hybrid application.
6. The method according to claim 1, wherein receiving an indication that the second user input has been rejected by the non-native element of the hybrid application includes receiving an indication that the non-native element of the hybrid application is unresponsive to the second user input.
7. The method according to claim 1, wherein the rejection indication indicates that the non-native element of the hybrid application has detected that the second user input of the touch gesture is an invalid touch gesture.
8. The method according to claim 1, wherein the rejection indication indicates that the non-native element of the hybrid application has become unresponsive when attempting to process the second user input of the touch gesture.
9. A method for receiving and processing touch input received via a touch screen interface of an electronic computing device, the touch input received by the electronic computing device being for execution by a hybrid application, the method comprising: detecting, by at least one processor, a plurality of inputs of a touch gesture with respect to a graphical user interface associated with a hybrid application, the hybrid application having non-native elements and native elements, wherein the plurality of inputs of the touch gesture include a first user input and a second user input; transmitting, by the at least one processor, the plurality of inputs of the touch gesture to the non-native element channel of the hybrid application according to a default input state, wherein the non-native elements of the hybrid application execute non-native functions in response to processing a subset of the plurality of inputs of the touch gesture; receiving, from the non-native element of the hybrid application, a rejection indication of a rejection of the plurality of inputs of the touch gesture; transmitting, by the at least one processor, the second user input of the touch gesture to the native element channel of the application in response to receiving the rejection indication of the rejection of the second user input of the touch gesture; executing, by the native element of the hybrid application, a native function in response to the second user input of the touch gesture; transmitting, by the at least one processor, additional user input of the touch gesture associated with the first user input of the touch gesture and the second user input of the touch gesture to the native element channel of the hybrid application; channeling the additional user input of the touch gesture until an end of the touch gesture or an input event including one or more touch gestures is detected; and rejecting, by the at least one processor, the additional user input of the touch gesture associated with the first user input of the touch gesture and the second user input of the touch gesture from being channeled to the non-native element of the hybrid application.
10. The method according to claim 9, wherein: Transmitting the plurality of inputs of the touch gesture to the non-native element channel of the hybrid application includes channel-transmitting the first user input and the second user input of the plurality of inputs of the touch gesture through a first channel associated with the non-native element of the hybrid application; and Transmitting the plurality of inputs of the touch gesture to the native element channel of the hybrid application includes channel-transmitting the second user input of the plurality of inputs of the touch gesture through a second channel associated with the native element of the hybrid application, the second channel including a container on the client device.
11. The method according to claim 9, wherein the touch gesture includes a swipe gesture.
12. The method according to claim 9, wherein the touch gesture includes a plurality of related touch inputs, each touch input including at least one input of the plurality of inputs of the touch gesture.
13. The method according to claim 9, wherein the default input state includes a default state of a contract that controls the reception and processing of user inputs received in combination with the hybrid application.
14. The method according to claim 13, further comprising restoring to the default input state upon completion of the touch gesture.
15. The method according to claim 14, further comprising: Detecting at least one input of a second touch gesture regarding the graphical user interface associated with the hybrid application; And Transmitting the at least one input of the second touch gesture to the non-native element channel of the hybrid application according to the restoration to the default input state.
16. The method according to claim 9, wherein: Transmitting the plurality of inputs of the touch gesture to the non-native element channel of the hybrid application includes transmitting a first plurality of user inputs of the touch gesture to the non-native element channel of the hybrid application; And Transmitting the plurality of inputs of the touch gesture to the native element channel of the hybrid application includes transmitting a second plurality of user inputs of the touch gesture to the native element channel of the hybrid application.
17. A computing device, comprising: At least one processor; And A non-transitory computer-readable storage medium storing instructions thereon, the instructions when executed by the at least one processor cause the computing device to: Detect a first user input of a touch gesture regarding a graphical user interface associated with a hybrid application, the hybrid application including non-native elements and native elements; Transmit the first user input of the touch gesture to the non-native element channel of the hybrid application, wherein the non-native elements of the hybrid application execute non-native functions in response to processing the first user input of the touch gesture; Detect a second user input of the touch gesture regarding the graphical user interface associated with the hybrid application; Transmit the second user input of the touch gesture to the non-native element channel of the hybrid application; Receive a rejection indication that the second user input of the touch gesture from the non-native element of the hybrid application has been rejected by the non-native element of the hybrid application; In response to receiving the rejection indication that the second user input of the touch gesture has been rejected by the non-native element of the hybrid application, transmit the second user input of the touch gesture to the native element channel of the hybrid application; Execute a native function by the native element of the hybrid application in response to processing the second user input of the touch gesture; Transmit additional user input of the touch gesture associated with the first user input of the touch gesture and the second user input of the touch gesture to the native element channel of the hybrid application; Channel-transmit the additional user input of the touch gesture until the end of the touch gesture or an input event including one or more touch gestures is detected; And Reject that the additional user input of the touch gesture associated with the first user input of the touch gesture and the second user input of the touch gesture is channel-transmitted to the non-native element of the hybrid application.
18. The computing device according to claim 17, wherein: The hybrid application resides on a client device associated with a user providing the touch gesture; and The non-native element of the hybrid application includes hypertext markup language content.
19. The computing device according to claim 18, wherein the native element of the hybrid application includes a container stored on the client device.
20. The computing device according to claim 17, wherein: The touch gesture includes a swipe gesture; The first user input of the swipe gesture corresponds to an input object contacting a touch screen interface; and The second user input of the swipe gesture corresponds to the direction of the input object relative to the touch screen interface.
Citation Information
Patent Citations
Computer remote security control method
CN101741860A
Network operating method and network operating system
CN104184580A
Touch screen type mobile apparatus micro-browser webpage displaying and drifting method
CN1841284A
Social network systems and methods
US20100306249A1
Hybrid network application architecture
US20140047517A1