Integration of content into non-browser applications
The integration of web content into non-browser applications through the assignment of a browser tab within the application's user interface addresses the challenges of security and user experience, providing a seamless and secure web content display.
Patent Information
- Application Number
- DE202016009230
- Authority / Receiving Office
- DE · DE
- Patent Type
- Utility models
- Current Assignee / Owner
- Priority Date
- 2015-10-07
- Filing Date
- 2016-09-26
- Publication Date
- 2025-03-13
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Application developers face challenges in seamlessly integrating web content into non-browser applications, leading to security concerns and a non-uniform user experience due to the need for context changes between application and browser interfaces.
A computer-implemented procedure that allows a non-browser application to display web content within its user interface by assigning a browser tab, enabling the web content to be loaded and displayed without leaving the application interface, thus maintaining a consistent user experience.
This approach enhances user experience by providing secure and seamless integration of web content within non-browser applications, reducing the need for context changes and minimizing delays associated with launching a separate browser application.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL AREA
[0001] This disclosure concerns technical aspects of enabling the display of web content. More specifically, this disclosure concerns approaches to integrating the display of web content into a non-browser user application. To be protected as a utility model and to be the subject of such protection, the Utility Model Act requires that only devices as defined in the accompanying claims be eligible, but not methods. In cases where the description refers to methods, these references serve only to describe the device or devices for which protection is sought under the claims contained therein. BACKGROUND
[0002] Application developers (e.g., mobile computing developers) have limited options for displaying web-based (e.g., internet-based) content within their applications. This includes web content associated with a link (e.g., a hyperlink for a Uniform Resource Locator (URL)) embedded in content displayed by the associated application. One approach to displaying web content is for application developers to implement their own browser-like functionality within their application interface (e.g., a graphical user interface), for example, by using an application programming interface (API) that provides basic browser functionality. However, such approaches can have drawbacks, such as insufficient browsing security and the inability to provide a consistent web browsing experience across multiple applications.
[0003] Another approach to displaying web content associated with an application involves application developers having a send intent to display (e.g., show, play, etc.) the associated web content to a browser application (e.g., a fully functional browser application). "Send intent" here means that the application triggers the launch of the fully functional browser application if it is not already running, and the associated web content is displayed by the fully functional browser application. Furthermore, the fully functional browser application can be a standalone application, independent of the non-browser application. While such approaches can offer browsing security, they require a significant context switch from the application's user interface (UI) to the browser's UI. This context switch can take a considerable amount of time (e.g.,(to launch the browser application, load the web content, and render the web content), which can negatively impact the user experience. Furthermore, a user might exit the application from the browser application (e.g., not return) (e.g., due to the delay and / or resuming in the browser application), which is undesirable for application developers, as they want to maintain user engagement within their application. Because the non-browser application and the browser application run as separate, fully functional applications with separate UIs, more system resources may be required than with the approach described above for implementing browser-like functionality within the non-browser application's interface.
[0004] US 2009 / 249251 A1 discloses a method, system, and manufacturing article for generating a user-defined page with representations of content from other pages. The user selection is received via a computer user interface from a portion of the content within a page displayed on a screen. In response to receiving the user selection, a graphic element representing the selected portion of the content is generated. A computer address for the selected content is determined in response to receiving the user selection. The generated graphic element is added to a user page. The graphic element on the user page is mapped to the determined computer address. The user selection is received via the computer user interface of the graphic element within the user page.In the user-side display device, content is rendered at the computer address associated with the selected graphic element.
[0005] WO 00 / 65763 A2 relates to a computer-readable memory for instructing a computer to operate in a predefined manner. The computer-readable memory includes a first executable module for identifying a definition of a Network Information Monitor (NIM). A second executable module defines a NIM frame for the NIM using the definition. A third executable module retrieves content for the NIM. A fourth executable module places the content in an NIM viewer defined by the frame. WO 00 / 65763 A2 also discloses a method for hosting Internet content, which includes the steps of receiving an address of a definition from a computing device, wherein the definition defines a frame and a location of content with which the frame is to be filled. Furthermore, WO 00 / 65763 A2 discloses a computer-readable memory for instructing a computer function in a predefined manner.The computer-readable memory includes a first executable module for identifying a network information monitor (NIM) definition. A second executable defines a NIM frame for the NIM using the definition. A third executable module retrieves content from the NIM. A fourth executable module places the content in an NIM viewer defined by the frame. WO 00 / 65763 A2 further discloses a method for hosting internet content, which includes the steps of receiving an address of a definition from a computing device, wherein the definition defines a frame and a location of content with which the frame is to be populated.
[0006] Anonymous: “Force Internet Explorer to open a new browser window from an Office link - TechRepublic”, November 24, 2013 (2013-11-24), XP055703870, refers to Internet Explorer configured to open a new browser window from an Office link, where, in response to clicking a link in an Office document, Internet Explorer opens and displays the respective web page in Internet Explorer in a new tab window or in a currently open browser window. SUMMARY
[0007] The objectives of the invention as described herein are fulfilled by the subject matter of the independent claims. Dependent claims define, by way of example, some possible embodiments.
[0008] According to a general aspect, a computer-implemented method may involve running a non-browser application on a computer device, the non-browser application displaying a link to web content on a display of the computer device, and receiving a notification that the link has been selected. The computer-implemented method may also involve, in response to the notification that the link has been selected, assigning a browser application tab to the non-browser application; displaying the assigned browser tab within a user interface of the non-browser application; and displaying the web content within the user interface through the assigned browser tab.
[0009] Implementations can include one or more of the following features. For example, the computing device can be a mobile computing device. The non-browser application and the assigned browser tab run as processes separate from the computing device. The assigned browser tab can include at least one menu item defined by the browser application, at least one menu item defined by the non-browser application, at least one button defined by the browser application, and / or at least one button defined by the non-browser application. The indication that the link has been selected can include at least one customization parameter for the assigned browser tab.
[0010] In response to the display of the link to the web content, the procedure may involve the non-browser application sending a pre-request to the browser application, the pre-request containing a Uniform Resource Locator (URL) corresponding to the link to the web content. In response to the pre-request, the procedure may involve the browser application performing at least one operation equivalent to displaying the web content.
[0011] The pre-request can include at least one customization parameter for the assigned browser tab. This at least one customization parameter can include one or more menu items and a corresponding action associated with the menu item, an icon corresponding to the non-browser application, a button and a corresponding action associated with the button, a color corresponding to the user interface, and an animation to be used to display the assigned browser tab within the user interface.
[0012] The at least one operation corresponding to displaying the web content may involve one or more of the following: starting the browser application, loading a native library of the browser application, performing a DNS lookup based on the URL, connecting to a server that matches the DNS lookup, downloading the web content from the server, and playing back the downloaded web content.
[0013] In another general aspect, a computer-implemented method may involve running a non-browser application on a computing device and the non-browser application displaying a link to web content on a display of the computing device. In response to the display of the link to the web content, the method may involve the non-browser application sending a pre-request to the browser application, the pre-request containing a Uniform Resource Locator (URL) corresponding to the link to the web content. The method may further involve the browser application, in response to the pre-request, performing at least one operation equivalent to displaying the web content and receiving a signal indicating the selection of the link.In response to receiving the signal, the method may include assigning a browser application tab to the non-browser application, the pre-query further including at least one customization parameter for the assigned browser tab; displaying the assigned browser tab within a user interface of the non-browser application according to the at least one customization parameter; and displaying the web content within the user interface through the assigned browser tab.
[0014] Implementations can include one or more of the following features. For example, the at least one customization parameter can include one or more menu items and a corresponding action associated with the menu item, an icon corresponding to the non-browser application, a button and a corresponding action associated with the button, a color corresponding to the user interface, and an animation to be used to display the assigned browser tab within the user interface.
[0015] The at least one operation corresponding to displaying the web content may involve one or more of the following: starting the browser application, loading a native library of the browser application, performing a DNS lookup based on the URL, connecting to a server that matches the DNS lookup, downloading the web content from the server, and playing back the downloaded web content.
[0016] The non-browser application and the assigned browser tab will be executed by the computing device as separate processes. The procedure may involve displaying the URL in the assigned browser tab. The procedure may also involve displaying a Secure Socket Layer (SSL) state corresponding to the web content displayed in the assigned browser tab.
[0017] The assigned browser tab can have access to at least one resource of the browser application. This at least one resource of the browser application can include one or more resources from an electronic payment service, a language translation service, a browsing history, autofill form data, and a password vault.
[0018] Performing the at least one operation corresponding to displaying the web content in response to the pre-request may involve performing the at least one operation corresponding to displaying the web content in a background browser process of the computing device, with the non-browser application running as a foreground process of the computing device.
[0019] In another general aspect, instructions can be stored on a non-transitory, computer-readable medium. When executed by at least one processor of a computing device, the instructions can cause the computing device to execute a non-browser application; cause the non-browser application to display a link to web content on a display of the computing device; and receive an indication that the link has been selected. In response to the indication that the link has been selected, the instructions, when executed by the at least one processor, can cause the computing device to assign a tab of a browser application to the non-browser application.When executed by a processor of a computing device, the instructions can further cause the computing device to display the assigned browser tab within a user interface of the non-browser application and to display the web content within the user interface through the assigned browser tab.
[0020] Implementations may include one or more of the following features. For example, when executed by the at least one processor, the instructions may cause the computing device to send a pre-request to the browser application in response to the non-browser application displaying the link to the web content, the pre-request including a Uniform Resource Locator (URL) corresponding to the link to the web content; and in response to the pre-request from the browser application, to perform at least one operation equivalent to displaying the web content in a background process.
[0021] In another general aspect, a computer-implemented procedure may involve receiving a request for content of a first type from a non-browser application. The computer-implemented procedure may further involve providing a user interface element for a browser application to the non-browser application. The non-browser application may then display content of a second type specifically created for the non-browser application. The computer-implemented procedure may also involve modifying the user interface element of the non-browser application so that the non-browser application displays the content of the first type.
[0022] Implementations can include one or more of the following characteristics. For example, the first content type can include web content. The first content type can include content not specifically created for display by the non-browser application. The user interface element can include a browser tab. Modifying the user interface element can involve applying one or more customization parameters to the user interface element.
[0023] The details of one or more implementations are shown in the accompanying drawings and the description below. Further features and advantages will become apparent from the description and drawings, as well as from the patent claims. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 is a diagram of a system for integrating web content into a non-browser application according to one implementation. Fig. 2 is a block diagram showing an example client and server of the system according to Fig. 1 illustrated according to an implementation. Fig. 3A, Fig. 3B and Fig. 3C are diagrams that, according to one implementation, illustrate the integration of web content into a non-browser application on a computing device. Fig. Figure 4 is a flowchart illustrating a procedure for integrating web content into a non-browser application according to one implementation. Fig. Figure 5 is a flowchart illustrating another method for integrating web content into a non-browser application according to one implementation. Fig. Figure 6 is a flowchart illustrating another method for integrating web content into a non-browser application according to one implementation. Fig. Figure 7 is a diagram that shows an example of a computer device and a mobile computer device with which the techniques described here can be implemented.
[0024] Identical reference symbols in different drawings indicate identical elements. DETAILED DESCRIPTION
[0025] The following description provides specific details to facilitate understanding of example implementations of systems and corresponding procedures for integrating web content into a non-browser application. However, it is evident that the disclosed implementations can be practiced without some of these specific details. In other cases, known structures and techniques have been omitted to avoid obscuring the disclosure.
[0026] In the approaches described herein, an interface (e.g., an API) is provided between a browser application and a non-browser application. The provided interface can be used to facilitate the non-browser application's request for a browser tab assignment. For the purposes of this disclosure, "assigning a browser tab" means retrieving, reproducing, and / or displaying content within a user interface (UI) of the non-browser application, for example, through the techniques described herein. In some implementations, the non-browser application may run on a computing device, with the execution of the non-browser application displaying application content (e.g.,Non-browser applications can include non-web content (integrated into the application code or other content specifically created for the non-browser application) in the application's user interface. This application content can contain a link (e.g., a hyperlink) to other content, such as web content. In one implementation, the application content can contain multiple links to various web content. In the described implementations, non-browser applications can take any number of forms. For example, a non-browser application could be an email application, a social media application, a photo-sharing application, a news service application, a customer service application, and so on.
[0027] The non-browser application can also interact with the browser application via the interface to request that the browser application be initialized when necessary, and to request that, once initialized, the browser application preload web content linked to one or more links contained within the displayed application content. The preloaded web content can be identified by the non-browser application in the request to the browser application, or the browser application itself can identify web content to be preloaded based on other information, such as a user's browsing history (e.g., to identify the most likely link within the application content for the user to select).
[0028] Fig. Figure 1 is a diagram of a System 100 for integrating web content into a non-browser application according to an implementation. The System 100 comprises clients 110 and servers 130. In the System 100, the clients 110 and the servers 130 are connected via a network (e.g., a data network such as the Internet) 150.
[0029] In System 100, each of the clients 110 can be configured to run a browser application for accessing, downloading, playing, and / or displaying web content, such as websites, executable web content, etc. In the approaches described here, the browser application can implement independent browser tabs for playing and displaying web content, with each browser tab being used to display specific (e.g., different) web content, and multiple browser tabs being assigned to (e.g., implemented by) a single browser application process.
[0030] In certain implementations, the Clients 110 can be configured to download and install such a browser application from one of the Servers 130. The browser application can be configured to run on Clients 130, which may be mobile and / or non-mobile computing devices. Clients 110 could include, for example, desktop computers, laptop computers, mobile computing devices (such as a smartphone, tablet computer, etc.), set-top boxes (such as for use with a television), smart TVs, video game consoles, or other devices with appropriate processor, memory, and data network communication capabilities.
[0031] In the implementations described herein, a browser tab of the browser application can be assigned to a non-browser application, and the assigned browser tab can be used to display web content within a user interface of the non-browser application. In such implementations, the assigned browser tab can be said to be embedded in the non-browser application, run on top of the non-browser application, integrated into a user interface (UI) of the non-browser application, and so on. In some implementations, an assigned browser tab can be used to display web content within a user interface of a non-browser application, with the browser tab remaining under the control of the browser application.In some implementations, an assigned browser tab can be used to display web content within a non-browser application's user interface, with the browser tab under the control of the non-browser application. In other implementations, an assigned browser tab can be used to display web content within a non-browser application's user interface, with the browser tab being jointly controlled by both the non-browser application and the browser application.
[0032] In other implementations, the browser application can be used to preload (e.g., access, download, and / or play) web content corresponding to a link (hyperlink) included in (displayed by) the content of the non-browser application. Such approaches can allow this web content to be displayed from an assigned browser tab within (above, embedded, etc.) a user interface of the non-browser application with little or no delay, compared to loading and playing that web content in response to the selection of an associated link in application content (non-web-based content) displayed by the non-browser application.In certain cases, different versions and / or configurations of the browser application, which include the functions disclosed herein, are available for download from a Server 130 and subsequent installation on a Client 110. The details of such a download and / or installation may depend, at least, on whether the Client 110 is a mobile or non-mobile computing device. Once installed on a Client 110, the browser application can be configured to load web content (e.g., web pages) from one or more of the multiple Servers 130 configured to host the web content. The Servers 130 can be any device that has a suitable processor, memory, and communication capability to host data files configured to install the web browser and / or host the web content.
[0033] Network 150 can, for example, include any one or more of a Personal Area Network (PAN), Local Area Network (LAN), Campus Area Network (CAN), Metropolitan Area Network (MAN), Wide Area Network (WAN), Broadband Network (BBN), Wireless LAN (WLAN), the Internet, etc. Furthermore, Network 150 can include one or more of the following network topologies, including, but not limited to, a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree network, or a hierarchical network.
[0034] In one implementation, when running on a client, the browser application can be configured to receive a request (a signal, a statement, etc.) from the non-browser application to load web content into the browser application. The browser application (and any assigned browser tabs) runs in the background (e.g., as a background process), while the non-browser application runs in the foreground (e.g., as a foreground process). In some implementations, if the browser application is not already running in the background, it can be initialized (or "warmed up") before the web content is loaded, for example, in response to a request from the non-browser application to load web content. The web content to be preloaded can be provided by the non-browser application (e.g.,(through a link in the non-browser application) or identified by the browser application in response to other data, such as a browsing history, a list of favorite websites, a browser cookie jar, etc.
[0035] Fig. Figure 2 is a block diagram showing an example client 110 and a server 130 of the system. Fig. 1 illustrated according to one implementation. As in Fig. 1 are the client 110 and the server 130 in Fig. 2. Connected via network 150 (e.g., via network adapters 218 and 238, respectively). Network adapters 218 and 238 can be configured to interact with network 150 and send and receive information such as data, requests, responses, and commands to and from other devices on network 150. Network adapters 218 and 238 could be, for example, mobile devices, Wi-Fi adapters, Ethernet network cards, and so on.
[0036] As in Fig. As shown in Figure 2, client 110 comprises a processor 212, a network adapter 218, and memory 220. In the example of Fig. 2. The memory 220 of client 110 contains a browser application 222 and a non-browser application 226 and may furthermore contain a client copy of the web content 224b. For example, the web content copy 224b (from the web content 224a in server 130) can be obtained by the browser application 222, displayed in a tab of the web browser 222 assigned to the non-browser application 226, and presented in a browser tab of the browser application 222 that is included (displayed, assigned, etc.) in a UI of the non-browser application 226 (e.g., by means of an output device 214 (e.g., a display) of client 110). As in Fig. As shown in Figure 1, the client 110 can also include an input device 216, such as a keyboard, touchscreen, touchpad or mouse, for receiving user input, such as link selection, text input, etc.
[0037] The processor 212 of client 110 can be configured to execute instructions such as instructions physically encoded into the processor 212, instructions received from software (e.g., the browser application 222 and / or the non-browser application) in memory 240, or a combination of both, to preload content in the browser application 222 (e.g., for display in an assigned browser tab in a user interface of the non-browser application 226). For example, the processor 212 of client 110 can execute instructions from the browser application 222 to receive, for example, through an interface of the browser application 222, a request from the non-browser application 226 to load or preload the web content copy 224b in a browser tab (assigned to the non-browser application 226) of the browser application 222.
[0038] As in Fig. As shown in Figure 2, web content copy 224b can be a copy of web content 224a that is downloaded by the browser application 222 from server 130 over network 150 and stored as web content copy 224b in the memory 220 of client 110. In some cases, the content copy 224b to be preloaded by the browser application 222 may already be in the memory 220 of client 110. For example, web content copy 224b could be a cached copy of web content 224a that was previously obtained by the browser application 222 and stored in the memory 220 of client 110.
[0039] The request from the non-browser application 226 to the browser application 222 can occur in response to the selection of a link contained in (associated with) application content displayed in a user interface of the non-browser application. Such a request can be referred to as an "intent request," a "direct intent request," and so on. In one case, the intent request is a "direct intent request," also called a "direct request," and is triggered when a link contained in application content displayed in a user interface of the non-browser application is selected. In other cases, the request from the non-browser application 226 to the browser application 222 can be a "preliminary request," also called a "pre-request," to retrieve the web content 224a (as a web content copy 224b) in the browser application 222 (e.g.,a tab of the browser application) in anticipation that (e.g., by a user) a link associated with web content 224a will be selected, preloaded. Such a preliminary request may be referred to as a "pre-request," a "pending request," etc. In other words, such pre-requests can be sent before the selection of a corresponding link contained in application content displayed in a user interface of the non-browser application 226.
[0040] The request (e.g., direct or pre-loaded) can be received by the browser application 222 from the non-browser application 226 via an API of the browser application 222. The browser application 222 can load or pre-load the web content 224a (e.g., as the web content copy 224b) in response to the request, for example, in a browser tab assigned to the non-browser application 226. As described herein, the non-browser application 226 can run as a foreground process when requesting to load or pre-load web content. The requested web content 224a can then be loaded and / or rendered in the background by the browser application 222 (e.g., in a browser tab).
[0041] As described herein, upon receiving the request from the non-browser application 226, the browser application 222 may be executed or initialized as a background process, i.e., as an application process that is not visible to a user. The request (e.g., direct or pre-loaded), when provided to an API of the browser application 222, may specify that the web content 224a should be downloaded by the browser application 222 over the network 150 from the server 130. Once downloaded, the web content 224a may then be stored as a web content copy 224b in the memory 220 of the client 110 for loading or pre-loading by the browser application 222 (or be loaded or pre-loaded directly from the network adapter 238 into the browser application 222). If the browser application 222 is not running in the background (e.g.,If the non-browser application 226 is not running as a background process or is otherwise not in a state to download the content 224a, the browser application 222 can be initialized (re-initialized, started, warmed up, etc.) in the background in response to such a request from the non-browser application 226, which is received by the browser application 222. After initialization, the browser application 222 can, for example, load or preload web content 224a or web content copies 224b in a browser tab that is assigned (associated) to the non-browser application 226.
[0042] The processor 212 of client 110 can also be configured to load or preload the web content 224a or the web content copy 224b in a browser tab of the browser application 222 in response to a request (e.g., directly or preemptively) from the non-browser application 226 and / or in response to a selection (e.g., by a user) of a link (to the web content 224a) contained in (associated) application content displayed by the non-browser application 222. The browser application 222 can then be configured to render and display the web content 224a (or the web content copy 224b) using an assigned browser tab of the browser application that is included in a user interface of the non-browser application 226 (e.g., embedded in it, running on it, etc.).
[0043] In certain implementations, the browser application 222 may be configured to receive a second request from the non-browser application 226 indicating that the (preloaded) web content 224a or web content copy 224b is not needed (e.g., a different link in the application content of the non-browser application 226 has been selected). Upon receiving this second request, the browser application 222 may be configured to unload (discard) the preloaded web content from the browser application 222 (e.g., from a browser tab of the browser application 222). For example, if the non-browser application 226 initially requests the browser application to preload the web content 224a (or web content copy 224b) in the background, but later determines (e.g., by the non-browser application 226) that the preloaded web content is not needed (e.g., because a different link in the application content of the non-browser application 226 has been selected), the browser application 222 may be configured to unload (discard) the preloaded web content from the browser application 222 (e.g., from a browser tab of the browser application 222).(by selecting a different link than a predicted link), the non-browser application 226 can inform the browser application 222 that the preloaded web content is not needed and the browser application 222 can unload or otherwise discard the preloaded web content (e.g., stored as a web content copy 224b) from the memory 220 of the client 110.
[0044] The non-browser application 226 can either directly identify the web content 224a to be preloaded by the browser application 222 or provide information to the browser application 222 as part of its request so that the browser application 222 can evaluate the information from the non-browser application 226 to determine the web content 224a to be preloaded. For example, the web content 224a to be preloaded in the browser application 222 (e.g., a browser tab of the browser application 222) can be a web page or other suitable web content. In such cases, if the non-browser application 226 is configured to directly identify the web content 224a to be loaded or preloaded by the browser application 222, the request by the non-browser application 226 to preload content may include an address (e.g., a URL) of the web content 224a to be loaded or preloaded by the browser application 222 (e.g., in the background).
[0045] In other cases where the non-browser application 226 is configured to provide information to the browser application 222 as part of the request, so that the browser application 222 can evaluate the information from the non-browser application 226 to determine the web content 224a to preload, the request from the non-browser application 226 to preload content may include the user's browsing history and / or other information that can be used to determine (e.g., predict) which web content 224a to preload. The browser application 222 can then use the browsing history and / or other information to identify the content 224a to preload in the browser application 222 (e.g., a browser tab).
[0046] In other cases where the non-browser application 226 is configured to provide information to the browser application 222 as part of the request, so that the browser application 222 can evaluate the information from the non-browser application 226 to determine the web content 224a to load, the browser application 222 can identify the content to load in the browser application 222 based on a probability value that the user will select a link for the preloaded content in the non-browser application 226. For example, if the non-browser application 226 indicates to the browser application 222 that a user of the non-browser application 226 is currently viewing application content about local restaurants, the browser application 222 can preload web content corresponding to links to one or more restaurants included in the application content displayed in a user interface of the non-browser application 226 (e.g.,based on a determination that the restaurants corresponding to the preloaded links meet a threshold probability of being most likely to be selected by a user in the non-browser application 226). The content to be preloaded in the browser application 222 is therefore not limited to a single piece of content, but can consist of multiple pieces of content, such as multiple web pages.
[0047] In implementations where the non-browser application 226 is configured to provide information to the browser application 222 as part of the request, so that the browser application 222 can evaluate the information from the non-browser application 226 to determine the web content 224a to preload, the request from the non-browser application 226 to preload content may include inputs (e.g., text or other inputs) entered by a user into the non-browser application 226 (e.g., using the input device 216). The browser application 222 can then use the input currently entered by the user in the non-browser application to identify the content 224a to be preloaded in (a browser tab) of the browser application 222.
[0048] For example, if the non-browser application 226 indicates to the browser application 222 that a user of the non-browser application 226 has entered "Thai" in a search input field of the non-browser application 226, the browser application 222 can, for example, preload web content corresponding to one or more web pages for Thai restaurants (e.g., Thai restaurants corresponding to links included in application content displayed by the non-browser application 226).
[0049] Fig. 3A, Fig. 3B and Fig. 3C are diagrams that illustrate the integration of web content into a non-browser application running (executed, etc.) on a mobile computing device (mobile device) according to an implementation. The implementations in Fig. 3A, Fig. 3B and Fig. The three examples shown are for illustrative purposes only. Other implementations may use different configurations to integrate the display (playback) of web content into a non-browser application. The following explanation of the Fig. 3A, Fig. 3B and Fig. In 3C, some elements are represented schematically (e.g., in block diagram form), while others are represented graphically. The specific arrangement and details of a particular implementation depend at least on the specific non-browser application, browser application, and the displayed (reproduced) web content. For illustration purposes, Fig. 3A, Fig. 3B and Fig. 3C, where applicable, with reference to Fig. 1 and Fig. 2 described. For example, the mobile device 300 can be used to connect a client device 110 as described in Fig. 1 and Fig. 2 to implement.
[0050] Fig. Figure 3A shows a user interface (graphical user interface) 310 of a non-browser application (such as the non-browser application 226) displayed on an output device (e.g., a display panel) of the mobile device 300, such as the output device 214 of the client 110. In this example, the user interface 310 includes an icon 312, a title 314, a menu icon 316, and application content 320. The mobile device 300 also includes a navigation keypad 330, which can be used to control various operations and functions of the mobile device 300, similar to navigation keys on a smartphone. The user interface 310 can also be displayed with colors, fonts, and / or other aesthetic elements corresponding to the associated non-browser application 226.In this example implementation, such colors, fonts, and / or other aesthetic elements can be specified by the non-browser application 226 in a (direct or preliminary) intent request and used when displaying embedded web content in a browser tab assigned to the non-browser application 226. Such an approach can provide a user with a "seamless" visual experience when viewing web content in a non-browser application, in contrast to current approaches that perform a context switch to the browser application 222.
[0051] In the user interface 310 of Fig. 3A The symbol 312 can be an icon corresponding to the non-browser application 226. Similarly, the title 314 can be used to display a name (e.g., a stylized logo) indicating the currently running non-browser application 226, whose user interface 310 is displayed on the mobile device 300. The menu icon 316 can be used to open a menu (e.g., an application function menu) for the non-browser application 226. A menu associated with the menu icon 316 contains various menu items that can be selected by a user of the mobile device 300 to cause the non-browser application 226 to perform associated actions (operations, tasks, etc.) of the non-browser application 226.
[0052] The application content 320 can be graphical content or other visual content (e.g., video content, text content, etc.) displayed by the non-browser application 226. In certain implementations, the application content 320 can be displayed in conjunction with audio content played by an audio system (not shown) of the mobile device 300. As in Fig. As shown in Figure 3A, the application content can contain 320 links (322, 324, 326, and 328, for example, hyperlinks including their respective URLs) that are associated with the respective web content. While in Fig. While four links are shown in 3A, other implementations may use fewer or additional links.
[0053] The Fig. Links 322, 324, 326, and 328 shown in Figure 3A can each correspond to a visual element of the application content 320, such as an image, an icon, text, a video, etc. As discussed herein, one or more of the links 322, 324, 326, and 328 can be provided to the browser application 222 (in a direct-intent and / or preliminary request). For the sake of clarity and illustration, the remaining explanation of the Fig. 3A, Fig. 3B and Fig. 3C is described in the context of a single link (Link 322) that is included in a (direct or preliminary) request for intent. It is understood that in certain implementations, information for multiple links can be included in a single request for intent. In other implementations, separate requests for intent can be sent for each link.
[0054] Upon receiving an intent request (direct or preliminary), the browser application 222 can then, in response to such an intent request, perform operations (e.g., background operations) to obtain associated web content 224a (e.g., which can be stored as a web content copy 224b) and load and / or render the obtained web content in a browser tab that is assigned (or can be assigned or will be assigned) to the non-browser application 226. As mentioned earlier, an intent request may include specifications of colors, fonts, and / or other aesthetic elements that correspond to the non-browser application 226. The browser application 222 can render the web content 224b according to these specifications.The presentation of the web content in the assigned browser tab (within a user interface of the non-browser application 226) can accordingly be designed to be aesthetically consistent with the presentation of the application content 320.
[0055] In this example, as a reaction to the selection of the in Fig. 3A links shown 322 by a user the user interface of the non-browser application displayed by the mobile device 300 226 from the display of the application content 320, as in Fig. 3A shows the display of the corresponding web content 224a (or the web content copy 224b) in an assigned browser tab 340, as shown in Fig. 3B shown, skip over. As described herein, the web content 224b (as a copy of the web content 224a) can be obtained by the browser application 222 in response to an intent request and rendered in the background in the associated browser tab 340 before being, as shown in Fig. 3B is shown within the user interface of the non-browser application 226. The transition from the display of the Fig. 3A to Fig. 3B can be performed according to an animation defined by the non-browser application (e.g., in an intent requirement). For example, the transition could be an insert transition, a fade-in / fade-out transition, a crossfade / fade-in transition, etc.
[0056] As in Fig. As shown in Figure 3B, the assigned browser tab 340 can include a back button 342, a security status icon 344, a domain indicator 346, an icon and / or button 347, a menu icon 348, rendered web content 350 (rendered from web content 224b), and a browser assist layer 352 (which may include visual elements displayed with the rendered web content 350). In this example, selecting the back button 342 can cause the display (of the assigned browser tab 140) to return to the menu icon shown in Figure 342. Fig. 3B shown mobile device 300 again for display (of the application content 320) in Fig. 3A is passed through. The security status symbol 342 can indicate whether the rendered web content 350 was received over a secure connection (e.g., Secure Socket Layer (SSL)) or an insecure connection. The domain indicator 346 can be used to specify a domain (e.g., a web site or URL) from which the rendered web content 350 was received. In some implementations, the domain indicator 346 may be a view-only (non-editable) indicator.
[0057] In the assigned browser tab 340, the icon and / or button 347 can also be an icon corresponding to the non-browser application 226. The icon and / or button 347 causes an action (operation) of the non-browser application 226 (or the browser application) to be performed in response to the selection (e.g., clicking) of the icon and / or button 347. The specific action associated with the icon and / or button 347 depends on the specific implementation and can be defined as part of a corresponding intent requirement. Furthermore, selecting the menu icon 348 can cause a menu (e.g., a different application menu than the one associated with the menu icon 316) to be displayed, as shown in Fig. The 3C menu 360 shown below will be discussed in more detail.
[0058] In the Fig. In the example shown in Figure 3B, the browser assist layer 352 can grant the non-browser application 226 (e.g., when displaying the assigned browser tab 140) access to features of the browser application 326. Such features may include a browser cookie jar, a browser history, a language translation service, a password vault (repository, etc.), and so on. The specific features available in (about, from, etc.) the browser assist layer 352 depend, at a minimum, on the specific browser application 222 used to render web content on the mobile device 300.
[0059] As mentioned above, in Fig. 3C displays a 360 menu, which appears when menu icon 348 is selected. Fig. 3B can be displayed. As in Fig. As shown in Figure 3C, menu 360 includes one or more browser menu items 362 and one or more application menu items 364. In this approach, browser menu items 362 (and associated operations) can be defined by the browser application 222 and included in the assigned browser tab 340, while application menu items 364 (and associated operations) can be defined by the non-browser application 226 (e.g., in an intent request) and included in menu 360 of the assigned browser tab 340 (e.g., by the browser application 222). By selecting a browser menu item 362 or an application menu item 364, the mobile device 300 performs an associated operation. The specific operations associated with the browser menu items 362 and the application menu items 364 depend on the particular implementation.
[0060] Fig. Figure 4 is a flowchart illustrating a Procedure 400 for integrating web content (e.g., displaying and / or playing web content) into a non-browser application according to one implementation. In this exemplary implementation, Procedure 400 can be found in the Fig. System 100 shown in 1 using the system associated with Fig. 2 and Fig. The techniques described in sections 3A-3C must be implemented. Accordingly, for illustrative purposes, procedure 400 will be shown with reference to... Fig. 1, 2 and 3A-3C are described. However, it is understood that the method 400 can be implemented in other ways in systems and devices with different arrangements.
[0061] In block 410, the procedure 400 includes executing the non-browser application 226 on the mobile device 300. In block 420, the procedure 400 includes displaying a link (the link 322) to web content 224a by the non-browser application 226 on a display (output device 214) of the mobile device 300. In block 430, the procedure 400 includes receiving a notification (selection) that the link 322 has been selected. In block 440, procedure 400, in response to the indication that link 322 has been selected, involves assigning the browser tab 340 of browser application 222 to non-browser application 226. In block 450, procedure 400 involves displaying the assigned browser tab 340 within the user interface of non-browser application 222. Furthermore, in block 460, procedure 400 may display the web content 224a (or the web content copy 224b) within the user interface of non-browser application by (in, with, etc.).) include the assigned browser tab 340.
[0062] In procedure 400, the indication that the link was selected at block 420 may include at least one customization parameter for the assigned browser tab. This at least one customization parameter may include one or more elements of a menu item and a corresponding action associated with that menu item, an icon corresponding to the non-browser application, a button and a corresponding action associated with that button, a color corresponding to the user interface, and an animation to be used to display the assigned browser tab within the user interface.
[0063] In this example, the non-browser application 226 and the assigned browser tab 340 are executed as separate processes by the mobile device 300 (e.g., the assigned browser tab is executed as part of a process assigned to the browser application 222). Further in the procedure 400, the assigned browser tab can contain at least one menu item defined by the browser application, at least one menu item defined by the non-browser application, at least one button defined by the browser application, and / or at least one button defined by the non-browser application. Such menu items can operate using the approaches described herein.
[0064] Fig. Figure 5 is a flowchart illustrating a Procedure 500 for integrating web content (e.g., displaying and / or playing web content) into a non-browser application according to one implementation. In this example implementation, Procedure 500 can be used as in Procedure 400, as described in Fig. System 100 shown in 1 using the information relating to Fig. 2 and Fig. The techniques described in sections 3A-3C must be implemented. Accordingly, for illustrative purposes, procedure 500 will be shown with reference to... Fig. 1, 2 and 3A-3C are described. However, it is understood that the method 500 can be implemented in other ways in systems and devices with different arrangements.
[0065] In block 510, procedure 500 involves executing the non-browser application 226 on the mobile device 300, and in block 520, it involves the non-browser application 226 displaying a link (e.g., link 322) to web content 224a on a display (e.g., the output device 214) of the mobile device 300. In response to the display of link 322 containing web content 224a, procedure 500 in block 530 may involve sending a pre-request to a browser application. The pre-request in block 530 may include a Uniform Resource Locator (URL) corresponding to the link to web content 224a. In block 540, procedure 500 may involve the browser application 226 performing at least one (background) operation equivalent to displaying web content 224a in response to the pre-request.
[0066] At block 550, procedure 500 involves receiving a signal indicating the selection of link 322 (e.g., by a user of the mobile device 300). In response to receiving the signal at block 550, procedure 500 at block 560 involves assigning a tab (the browser tab 340) of the browser application 222 to the non-browser application 226. As described herein, the pre-request of block 530 may further include at least one adaptation parameter for the assigned browser tab 340, such as the adaptation parameters described with respect to procedure 400.
[0067] In block 570, the procedure 500 includes displaying the assigned browser tab 340 within a user interface of the non-browser application 226 according to at least one customization parameter of block 560. Furthermore, in block 580, the procedure 500 can be used as described in Fig. 3B illustrates displaying the web content 224a (or the web content copy 224b) within the user interface of the non-browser application by including the assigned browser tab 340.
[0068] In procedure 500, the at least one operation corresponding to displaying the web content in block 540 may include one or more of the following: starting the browser application, loading a native library of the browser application, performing a Domain Name System (DNS) lookup based on the URL, establishing a connection to a server matching the DNS lookup, downloading the web content from the server, and rendering the web content (e.g., according to the at least one customization parameter of block 560). In procedure 500, as in procedure 400, the non-browser application 226 and the assigned browser tab 340 are executed as separate processes by the mobile device 300.In other cases, the non-browser application 226 and the assigned browser tab 340 can run as part of the same process on the mobile device 300, with the assigned browser tab 340 being controlled by the non-browser application 226. This is a particularly resource-efficient implementation. Furthermore, performing the one or more operations corresponding to displaying the web content 224a (or the web content copy 224b) at block 540, in response to the pre-request at block 530, can involve performing the one or more operations corresponding to displaying the web content (such as those discussed above) in a background process of the browser application 222 on the mobile device 300, while the non-browser application 226 runs as a foreground process on the mobile device 300.
[0069] Displaying web content at block 580 can include displaying a URL (domain) associated with web content 224a on the assigned browser tab 340. Additionally, displaying web content at block 580 can also include displaying a Secure Socket Layer (SSL) state corresponding to the web content displayed on the assigned browser tab, such as the security state icon 344.
[0070] In procedure 500, the assigned browser tab 340 can access at least one resource of the browser application 222, for example, via the browser assist layer 352. Such resources of the browser application 222 may include one or more from an electronic payment service, a language translation service, a browser history, autofill form data, and a password vault, although other browser resources may also be accessible.
[0071] Fig. Figure 6 is a flowchart illustrating another Procedure 600 for integrating content into a non-browser application (e.g., displaying content not specifically created for the non-browser application) according to one implementation. In this exemplary implementation, Procedure 600 can be used like Procedures 400 and 500 in the [document / reference]. Fig. System 100 shown in 1 using the information relating to Fig. 2 and Fig. The techniques described in 3A-3C will be implemented. Accordingly, procedure 600 will be used for illustration as needed, with reference to Fig. 1, 2 and 3A-3C are described. However, it is understood that the method 600 can be implemented in other ways in systems and devices with different arrangements and with content other than web content.
[0072] In block 610, procedure 600 may involve receiving a request for content of a first type from a non-browser application (e.g., non-browser application 226). The first content type may be content not specifically created for display by the non-browser application. For example, in one implementation, the first content type may be web content 224a or web content (copy) 224b. In other implementations, the first content type may be content other than web content. In block 620, procedure 600 may involve providing a user interface element for a browser application (e.g., such as browser application 222) to the non-browser application, with the non-browser application displaying content of a different, second type that is specifically configured (adapted, formatted, generated, etc.) for use in / by the non-browser application. The second content type may include text, images, hyperlinks, etc.In one implementation, the user interface element might be a browser tab. In other implementations, the user interface element might take other forms, such as a browser window, a popup window, etc.
[0073] In block 630, procedure 600 may also involve modifying the user interface element for a non-browser application's user interface to display the content of the first type to the non-browser application. Modifying in block 630 may involve integrating the user interface element (e.g., a browser tab) into the non-browser application's user interface, such as using the approaches described here. For example, modifying the user interface element may involve applying at least one customization parameter to the user interface element, such as the customization parameters described here.
[0074] According to a general aspect, a computer-implemented method may involve running a non-browser application on a computer device, the non-browser application displaying a link to web content on a display of the computer device, and receiving a notification that the link has been selected. The computer-implemented method may also involve, in response to the notification that the link has been selected, assigning a browser application tab to the non-browser application; displaying the assigned browser tab within a user interface of the non-browser application; and displaying the web content within the user interface through the assigned browser tab.
[0075] Implementations can include one or more of the following features. For example, the computing device can be a mobile computing device. The non-browser application and the assigned browser tab run as processes separate from the computing device. The assigned browser tab can include at least one menu item defined by the browser application, at least one menu item defined by the non-browser application, at least one button defined by the browser application, and / or at least one button defined by the non-browser application. The indication that the link has been selected can include at least one customization parameter for the assigned browser tab.
[0076] In response to the display of the link to the web content, the procedure may involve the non-browser application sending a pre-request to the browser application, the pre-request containing a Uniform Resource Locator (URL) corresponding to the link to the web content. In response to the pre-request of the web content, the procedure may involve the browser application performing at least one operation equivalent to displaying the web content.
[0077] The pre-request can include at least one customization parameter for the assigned browser tab. This at least one customization parameter can include one or more menu items and a corresponding action associated with the menu item, an icon corresponding to the non-browser application, a button and a corresponding action associated with the button, a color corresponding to the user interface, and an animation to be used to display the assigned browser tab within the user interface.
[0078] The at least one operation corresponding to displaying the web content may involve one or more of the following: starting the browser application, loading a native library of the browser application, performing a DNS lookup based on the URL, connecting to a server that matches the DNS lookup, downloading the web content from the server, and playing back the downloaded web content.
[0079] In another general aspect, a computer-implemented method may involve running a non-browser application on a computing device and the non-browser application displaying a link to web content on a display of the computing device. In response to the display of the link to the web content, the method may involve the non-browser application sending a pre-request to the browser application, the pre-request containing a Uniform Resource Locator (URL) corresponding to the link to the web content. The method may further involve the browser application, in response to the pre-request, performing at least one operation equivalent to displaying the web content and receiving a signal indicating the selection of the link.In response to receiving the signal, the procedure may include assigning a browser application tab to the non-browser application, wherein the pre-query further includes at least one customization parameter for the assigned browser tab; displaying the assigned browser tab within a user interface of the non-browser application according to the at least one customization parameter; and displaying the web content within the user interface through the assigned browser tab.
[0080] Implementations can include one or more of the following features. For example, the at least one customization parameter can include one or more menu items and a corresponding action associated with the menu item, an icon corresponding to the non-browser application, a button and a corresponding action associated with the button, a color corresponding to the user interface, and an animation to be used to display the assigned browser tab within the user interface.
[0081] The at least one operation corresponding to displaying the web content may involve one or more of the following: starting the browser application, loading a native library of the browser application, performing a domain name system (DNS) lookup based on the URL, connecting to a server that matches the DNS lookup, downloading the web content from the server, and playing back the downloaded web content.
[0082] The non-browser application and the assigned browser tab will be executed by the computing device as separate processes. The procedure may involve displaying the URL in the assigned browser tab. The procedure may also involve displaying a Secure Socket Layer (SSL) state corresponding to the web content displayed in the assigned browser tab.
[0083] The assigned browser tab can have access to at least one resource of the browser application. This at least one resource of the browser application can include one or more resources from an electronic payment service, a language translation service, a browsing history, autofill form data, and a password vault.
[0084] Performing the at least one operation corresponding to displaying the web content in response to the pre-request may involve performing the at least one operation corresponding to displaying the web content in a background browser process of the computing device, with the non-browser application running as a foreground process of the computing device.
[0085] In another general aspect, instructions can be stored on a non-transitory, computer-readable medium. When executed by at least one processor of a computing device, the instructions can cause the computing device to execute a non-browser application; cause the non-browser application to display a link to web content on a display of the computing device; and receive an indication that the link has been selected. In response to the indication that the link has been selected, the instructions, when executed by the at least one processor, can cause the computing device to assign a tab of a browser application to the non-browser application.When executed by at least one processor of a computing device, the instructions can further cause the computing device to display the assigned browser tab within a user interface of the non-browser application and to display the web content within the user interface through the assigned browser tab.
[0086] Implementations may include one or more of the following features. For example, when executed by the at least one processor, the instructions may cause the computing device, in response to the non-browser application displaying the link to the web content, to send a pre-request to the browser application, the pre-request including a Uniform Resource Locator (URL) corresponding to the link to the web content; and, in response to the pre-request, to have the browser application perform at least one operation equivalent to displaying the web content in a background process.
[0087] In another general aspect, a computer-implemented procedure may involve receiving a request for content of a first type from a non-browser application. The computer-implemented procedure may further involve providing a user interface element for a browser application to the non-browser application. The non-browser application may then display content of a second type specifically created for the non-browser application. The computer-implemented procedure may also involve modifying the user interface element of the non-browser application so that the non-browser application displays the content of the first type.
[0088] Implementations can include one or more of the following characteristics. For example, the first content type can include web content. The first content type can include content not specifically created for display by the non-browser application. The user interface element can include a browser tab. Modifying the user interface element can involve applying at least one customization parameter to the user interface element.
[0089] Fig.Figure 7 shows an example of a generic computing device 700 and a generic mobile computing device 750 that can be used in the techniques described herein. The computing device 700 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. The computing device 750 is intended to represent various forms of mobile devices, such as personal digital assistants, mobile phones, smartphones, and other similar computing devices. The components shown here, their connections and relationships, and their functions serve only as examples and are not intended to limit the implementation of the inventions described and / or claimed in this publication.
[0090] The computing device 700 comprises a processor 702, a memory 704, a storage device 706, a high-speed interface 708 connected to the memory 704 and high-speed expansion ports 710, and a low-speed interface 712 connected to a low-speed bus 714 and the storage device 706. Components 702, 704, 706, 708, 710, and 712 are interconnected using various buses and can be mounted on a common mainboard or otherwise, as required. The processor 702 can process instructions for execution within the computing device 700, including instructions stored in the memory 704 or on the storage device 706 to display graphical information for a GUI on an external input / output device, such as a display 716 connected to the high-speed interface 708.Other implementations allow for the use of multiple processors and / or multiple buses, along with multiple memory types and storage devices, as needed. Furthermore, multiple computing devices can be interconnected, with each device providing parts of the necessary operations (e.g., as a server bank, a group of blade servers, or a multiprocessor system).
[0091] Memory 704 stores information within the computing device 700. In one implementation, Memory 704 is a volatile storage unit or units. In another implementation, Memory 704 is a non-volatile storage unit or units. Memory 704 can also be another form of computer-readable medium, such as a magnetic or optical disk.
[0092] The storage device 706 is capable of providing mass storage for the computing device 700. In an implementation, the storage device 706 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device or tape device, flash memory, or other similar semiconductor storage device or arrangement of devices, including devices in a memory area network or other configurations. A computer program product may be physically implemented on an information carrier. The computer program product may also contain instructions that, when executed, perform one or more procedures, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 704, the storage device 706, or the memory on the processor 702.
[0093] The high-speed controller 708 manages bandwidth-intensive operations for the computing device 700, while the low-speed controller 712 manages less bandwidth-intensive operations. This function assignment is merely an example. In one implementation, the high-speed controller 708 is coupled to the memory 704, the display 716 (e.g., via a graphics processor or accelerator), and to high-speed expansion ports 710, which can accommodate various expansion cards (not shown). In this implementation, the low-speed controller 712 is coupled to the memory device 706 and the low-speed expansion port 714. The low-speed expansion port, which provides various communication connections (e.g.,USB, Bluetooth, Ethernet, wireless Ethernet) may be included, and may be connected to one or more input / output devices, such as a keyboard, pointing device, scanner or network device, such as a switch or router, e.g. via a network adapter.
[0094] The computing device 700 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as a standard server 720 or multiple servers in a group. It can also be implemented as part of a rack server system 724. Furthermore, it can be implemented in a personal computer, such as a laptop computer 722. Alternatively, components of the computing device 700 can be combined with other components in a mobile device (not shown), such as the device 750. Each of these devices can contain one or more computing devices 700, 750, and a complete system can consist of several computing devices 700, 750 that communicate with each other.
[0095] The computing device 750 includes, among other things, a processor 752, a memory 764, an input / output device such as a display 754, a communication interface 766, and a transceiver 768. The device 750 may also be equipped with a storage device, such as a Microdrive or other device, to provide additional storage space. The components 750, 752, 764, 754, 766, and 768 are interconnected using various buses, and several of the components may be mounted on a common mainboard or in another suitable manner.
[0096] The 752 processor can execute instructions within the 750 computing device, including instructions stored in the 764 memory. The processor can be implemented as a chipset comprising multiple separate analog and digital processors. For example, the processor can provide coordination of the other components of the 750 device, such as control of user interfaces, applications executed by the 750 device, and wireless communication by the 750 device.
[0097] The processor 752 can communicate with a user via a control interface 758 and a display interface 756, which is coupled to a display 754. The display 754 can be, for example, a TFT-LCD (thin-film transistor liquid crystal display) or an OLED (organic light-emitting diode) display, or another suitable display technology. The display interface 756 can include suitable circuitry for driving the display 754 to provide a user with graphical and other information. The control interface 758 can receive commands from a user and convert them for transmission to the processor 752. Furthermore, an external interface 762 can be provided for communication with the processor 752 to enable short-range communication between the device 750 and other devices.The external 762 interface can be provided for wired communication in some implementations or for wireless communication in others, and multiple interfaces can be used.
[0098] Information is stored within the computing device 750 in memory 764. Memory 764 can be implemented as one or more computer-readable media, volatile memory units, or non-volatile memory units. Additionally, expansion memory 774 can be provided and connected to the device 750 via an expansion interface 772, which may include, for example, a SIMM (Single In-Line Memory Module) interface. Such expansion memory 774 can provide additional storage space for the device 750 or may also store applications or other information for the device 750. In particular, expansion memory 774 may contain instructions for executing or supplementing the processes described above and may also contain secure information.For example, the 774 expansion memory can be used as a security module for the 750 device and programmed with instructions that enable the secure use of the 750 device. Furthermore, secure applications and additional information, such as the placement of identification information on the SIMM card in a non-hackable manner, can be provided via the SIMM cards.
[0099] The memory can include, for example, flash memory and / or NVRAM memory, as discussed below. In an implementation, a computer program product is physically realized on an information carrier. The computer program product contains instructions that, when executed, perform one or more procedures, such as those described above. The information carrier is a computer- or machine-readable medium, such as memory 764, expansion memory 774, or memory on the processor 752, which can be received, for example, via the transceiver 768 or the external interface 762.
[0100] The Device 750 can communicate wirelessly via the Communication Interface 766, which may include digital signal processing circuitry if required. The Communication Interface 766 can provide communication according to various modes or protocols, such as GSM voice calls, SMS, EMS or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS. Such communication can be performed, for example, via the High Frequency Transceiver 768. Furthermore, short-range communication is possible, such as using a Bluetooth, WLAN, or other such transceiver (not shown). Additionally, a GPS (Global Positioning System) Receiver Module 770 can provide the Device 750 with additional navigation and location-related wireless data, which can be used by applications running on the Device 750 if required.
[0101] The Device 750 can also communicate acoustically using an Audio Codec 760, which can receive spoken information from a user and convert it into usable digital information. The Audio Codec 760 can also generate audible sound for a user, such as through a speaker, for example, in a handset of the Device 750. Such sounds can include sounds from telephone voice calls, recorded sounds (e.g., voice messages, music files, etc.), and sounds generated by applications running on the Device 750.
[0102] The computing device 750 can be implemented in a number of different forms, as shown in the figure. For example, it can be implemented as a mobile phone 780. It can also be implemented as part of a smartphone 782, a personal digital assistant, or another similar mobile device.
[0103] Various implementations of the systems and techniques described here can be realized in digital electronic circuits, integrated circuits, specially designed ASICs (application-specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include an implementation in one or more computer programs that are executable and / or interpretable on a programmable system with at least one programmable processor, which may be a specialized or general-purpose processor, and which is coupled to receive data and instructions from a storage system, at least one input device, and at least one output device, and to send data and instructions to these.
[0104] These computer programs (also referred to as programs, software, software applications, or code) contain machine instructions for a programmable processor and may be implemented in a higher-level procedural and / or object-oriented programming language and / or in assembly / machine language. The terms "machine-readable medium" and "computer-readable medium" in this context refer to any computer program product, any facility, and / or any device (e.g., magnetic disks, optical disks, memory, programmable logic devices (PLDs)) used to provide machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal.The term "machine-readable signal" refers to any signal used to provide machine instructions and / or data to a programmable processor.
[0105] To provide interaction with a user, the systems and techniques described here can be implemented on a computer that has a display device (e.g., a monitor with a CRT (cathode ray tube) or LCD (liquid crystal display)) for showing information to the user, as well as a keyboard and a pointing device (e.g., a mouse or trackball) with which the user can provide input to the computer. In addition, other types of devices can be used to interact with a user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual, auditory, or tactile); and input from the user can be received in any form, including auditory, verbal, or tactile input.
[0106] The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., a data server), a middleware component (e.g., an application server), a front-end component (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The system components can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the internet.
[0107] A computer system can include clients and servers. A client and a server are generally located remotely and typically interact via a communication network. The client-server relationship arises because computer programs run on the respective computers, establishing a client-server relationship with each other.
[0108] Several implementations have been described. However, it is understood that various modifications can be made without deviating from the scope of the claimed invention.
[0109] Furthermore, the logic sequences depicted in the figures do not require the specific order or sequential order shown to achieve the desired results. Additionally, other steps in the described sequences can be included or omitted, and other components can be added to or removed from the described systems, while the described systems remain within the scope of the claimed invention. QUOTES CONTAINED IN THE DESCRIPTION
[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature
[0000] US 2009 / 249251 A1
[0004] WO 00 / 65763 A2
[0005]
Claims
[1] A computer program comprising instructions that, when executed by a computing device (110, 750) having a memory (220, 764) storing a non-browser application (226) and a browser application (222), the non-browser application and the browser application being separate applications with separate user interfaces, the browser application being configured to retrieve web content from a web server and render the web content in a browser tab, cause the computing device (110, 750) to perform operations, the operations comprising: Executing (410, 510) the non-browser application (226) on the computing device (110, 750); displaying (420, 520) application content including a link to the web content by the non-browser application on a display of the computing device; receiving (430, 550) an indication that the connection displayed by the non-browser application has been selected; in response to the indication that the connection has been selected, associating (440, 560) a browser tab of the browser application with the non-browser application, the associated browser tab including: a first selectable item associated with an action of the non-browser application, wherein selection of the first selectable item causes the computing device to perform the action of the non-browser application, wherein the action of the non-browser application includes an operation or task of the non-browser application; and a second selectable item associated with an action of the browser application, wherein selection of the second selectable item causes the computing device to perform the action of the browser application, wherein the action of the non-browser application includes an operation or task of the browser application; and Displaying (450, 570) the associated browser tab with the web content within a user interface of the non-browser application, wherein displaying the associated browser tab within the user interface of the non-browser application comprises displaying the associated browser tab embedded in the non-browser application. [2] The computer program of claim 1, wherein the computing device is a mobile computing device. [3] A computer program according to claim 1 or 2, wherein the method further comprises, in response to displaying the link to the web content: Sending, by the non-browser application, a request to preload the web content to the browser application, wherein the request to preload the web content includes a uniform resource locator (URL) corresponding to the connection to the web content, wherein the request to preload the web content is sent prior to selecting the connection to the web content and is configured to initiate preloading of the web content in the associated browser tab in anticipation of the connection being selected; and in response to the request to preload the web content, performing, by the browser application, at least one operation corresponding to displaying the web content. [4] The computer program of claim 3, wherein the request to preload the web content includes at least one customization parameter for the associated browser tab. [5] The computer program of claim 4, wherein the at least one adaptation parameter includes one or more of the following: the first selectable item associated with the non-browser application action; an icon corresponding to the non-browser application; a button corresponding to the non-browser application; a color corresponding to a user interface of the associated browser tab; and an animation used to display the associated browser tab. [6] A computer program according to claim 1 or 2, wherein the indication that the connection has been selected includes at least one customization parameter for the associated browser tab. [7] A computer program according to any one of the preceding claims, wherein the non-browser application and the associated browser tab are executed as separate processes by the computing device. [8] A computer program according to any one of the preceding claims, wherein the associated browser tab includes: at least one button defined by the browser application; and at least one button defined by the non-browser application. [9] A non-transitory computer-readable medium having instructions stored thereon, the instructions configured for execution by at least one processor (212, 752) of a computing device (110, 750) having a memory (220, 764) storing a non-browser application (226) and a browser application (222), the non-browser application and the browser application being separate applications with separate user interfaces, the browser application configured to retrieve web content from a web server and render the web content in a browser, and the instructions causing the computing device to perform operations, the operations comprising: Executing (410, 510) the non-browser application (226) on the computing device (110, 750); displaying (420, 520) application content including a link to the web content by the non-browser application on a display of the computing device; receiving (430, 550) an indication that the connection displayed by the non-browser application has been selected; in response to the indication that the connection has been selected, associating (440, 560) a browser tab of the browser application with the non-browser application, the associated browser tab including: a first selectable item associated with an action of the non-browser application, wherein selection of the first selectable item causes the computing device to perform the action of the non-browser application, wherein the action of the non-browser application includes an operation or task of the non-browser application; and a second selectable item associated with an action of the browser application, wherein selection of the second selectable item causes the computing device to perform the action of the browser application, wherein the action of the non-browser application includes an operation or task of the browser application; and Displaying (450, 570) the associated browser tab with the web content within a user interface of the non-browser application, wherein displaying the associated browser tab within the user interface of the non-browser application comprises displaying the associated browser tab embedded in the non-browser application. [10] A computing device (110, 750) comprising a memory (220, 764) configured to store a non-browser application (226) and a browser application (222), wherein the non-browser application and the browser application are separate applications with separate user interfaces, wherein the browser application is configured to retrieve web content from a web server and render the web content in a browser tab, and wherein the computing device is configured to: executing (410, 510) the non-browser application (226), wherein the non-browser application is configured to display (420, 520) application content including a link to the web content on a display of the computing device; receiving (430, 550) an indication that the connection displayed by the non-browser application has been selected; in response to the indication that the connection has been selected, associating (440, 560) a browser tab of the browser application with the non-browser application, the associated browser tab including: a first selectable item associated with an action of the non-browser application, wherein selection of the first selectable item causes the computing device to perform the action of the non-browser application, wherein the action of the non-browser application includes an operation or task of the non-browser application; and a second menu item associated with an action of the browser application, wherein selection of the second selectable item causes the computing device to perform the action of the browser application, wherein the action of the non-browser application includes an operation or task of the browser application; Displaying (450, 570) the associated browser tab with the web content within a user interface of the non-browser application, wherein displaying the associated browser tab within the user interface of the non-browser application comprises displaying the associated browser tab embedded in the non-browser application.
Citation Information
Patent Citations
Generating a user defined page having representations of content in other pages
US20090249251A1
Apparatus and method for delivering internet content
WO2000065763A2