This invention relates to hyperlinks, and more specifically, to hyperlinks displayed on Internet-enabled display devices and handling the URLs underlying the hyperlinks.
Electronic devices such as televisions, mobile phones, PDAs, tablet computers, personal computers, DVD Players, and game consoles are equipped with the Internet TV capability, where the electronic device serves as a gateway delivering select Internet content and a variety of on-demand entertainment straight to the device. Examples of Internet TV systems include Sony's Android based TV and Blue ray players which can be used with devices such as Sony Bravia TVs (BTVs) to provide users with access to online television programming via the Internet.
Browsers in Internet TV systems typically operate via user clicks on on-screen icons/hyperlinks and uniform resource locators (URLs). The URLs referenced by hyperlinks in a web browser on a user's screen can be sent to various applications to initiate various functionalities. As more and more features and functionalities are added within an application, it is important that scalability issues (especially after sale since broadcasting software updates are expensive) are handled wisely, i.e., that the application is capable of handling the growing number of features and internet links, and can be expanded to adequately accommodate such growth. One solution could be to let the application recognize URLs having a scheme that can take different formats which will invoke appropriate functionality within the application. Such a solution is likely to require constant labor and resources and is not cost-effective.
Accordingly, what is needed is a method of uniform URL handling that can be implemented within an application to invoke multiple functionalities.
The present invention satisfies this need. In an embodiment, a method of handling Internet links comprises: providing a link associated with a uniform resource locator (“URL”) in an Internet browser on a display of an electronic device, the link including a scheme name that references an application, and a handler-directive that references a functionality to be performed by the application; launching the application referenced by the URL in response to a user selecting the URL, the application including a URL handler; receiving the URL in the URL handler of the application, the URL handler breaking up the URL to separate at least the handler-directive; determining whether the handler-directive is supported in the URL handler; and performing, via the application, the functionality referenced by the handler-directive.
Providing a URL can comprise providing a URL including a scheme name comprising a name of the application.
The method can also comprise returning an error message to the user in response to a determination that the handler-directive is not supported in the URL handler.
In one approach, determining whether the handler-directive is supported in the URL handler can further comprise specifying a plurality of handler-directives supported in the URL handler. The method can further comprise matching the handler-directive separated from the URL to one of the plurality of handler-directives supported in the URL handler.
In another embodiment, a method of handling Internet links comprises: providing at least one link in an Internet browser on a display of an electronic device, the at least one link being associated with a uniform resource locator (“URL”) that includes a scheme name that references an application; permitting a user to select the at least one link; launching the application referenced by the URL in response to the user selecting the at least one link; sending the URL associated with the at least one link to a URL handler of the launched application, the URL including a handler-directive referencing a functionality associated with the launched application; breaking up the URL in the URL handler to separate the handler-directive; and determining whether the separated handler-directive is supported in the URL handler.
The method can further comprise launching the functionality referenced in the handler-directive via the launched application in response to a determination that the separated handler-directive is supported in the URL handler. The method can also comprise returning an error message to the user in response to a determination that the separated handler-directive is not supported in the URL handler.
Sending the URL can include sending the URL including a scheme name comprising a name of the application. Breaking up the URL can include breaking up the URL to separate at least the scheme name and the handler-directive.
In one approach, determining whether the separated handler-directive is supported in the URL handler further comprises storing associating with the URL handler a plurality of handler-directives supportable in the URL handler. The method can further comprise determining that the separated handler-directive matches one of the handler-directives supportable in the URL handler.
Providing at least one link in an Internet browser on a display of an electronic device can include providing an electronic device selected from a group consisting of televisions, personal computers, tablet computers, mobile phones, personal digital assistants, DVD players and video game consoles.
Permitting the user to select the at least one link includes providing a user with at least one of a keyboard, a mouse, a roller wheel, or a remote control. Launching the application referenced by the URL can include launching the application within an Android operating system.
The methods described in the present application provide numerous advantages over the presently used systems and methods, which will be appreciated by those of ordinary skill in the art with reference to the following drawings, detailed description, and claims.
Reference will now be made in detail to the present preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings.
Generally, users can navigate Internet Browsers on Internet-TV platforms such as Android-based GOOGLE TV. Users can select hyperlinks displayed on a screen to go from web page to web page, and to invoke various applications and functionalities. The URLs associated with the hyperlinks are formatted to include a scheme name referencing a target application and a handler-directive referencing a functionality to be performed by the application that can be parsed by a URL Handler of an application launched in response to the user's selection of a hyperlink. If the handler-directive is supported in the URL Handler, the URL Handler reads the rest of the URL and executes the URL as programmed. If the handler-directive is determined not to be supported in the URL Handler, the URL Handler does not read the rest of the URL and returns an error message to the user.
Internet television is becoming increasingly popular because it allows users to choose media content they want to watch from an archive of content or from a channel directory. One way of viewing Internet television is streaming the content directly to a media player and another way is downloading the media to the user's device such as a computer or a set-top-box. One TV platform that allows users to browse, stream, and download media content is an Android-based Google TV platform illustrated in
With reference to
With reference to
With continuing reference to
The Sony Recommends App 70 includes a URL Handler 72. The URL Handler 72 can be a subroutine that is programmed to receive the URL 60 and break up the URL into its subcomponents, which are shown in more detail and discussed below in reference to
Referring to
With continuing reference to
The rest of URL 66, which would follow the handler-directive 64 in each of the URLs 61, 63, and 65, would reference the service to be launched in response to the “launch-service/” handler-directive 64 of the URL 61; the functionality to be run in response to the “fire_intent/” handler-directive 64 of the URL 63, or the search to be performed in response to the “search/” handler-directive 64 of the URL 65. For example, if the URL link 65 were to read “sonyrecommends://search/?keyword=music_unlimited,” based on the scheme name “sonyreommends://,” the Sony Recommends App 70, based on the handler-directive 64 “search/,” would perform a search for the keywords “music unlimited,” based on the rest of URL 66 “?keyword=music unlimited,” returning to the user search results pertaining to Sony's Music Unlimited service.
In another example, if the URL 63 reads as follows: “sonyrecommends://fire_intent/com.sony.bivl.PLAY/?service_id=21424&asset_id=dccbdef284999e 080208f88c068669ca&category_id=0&option_id=0,” which would result in the following functionality to be performed in response to the “sonyrecommends://”scheme name 62, “fire_intent/” handler-directive 64, and the “com.sony.bivl.PLAY/ . . . ” rest of URL 66:
For comparison, a typical URL in Microsoft Windows can be: http://www.microsoft.com/index.php, where http:// is the scheme name and universally known protocol. For security reasons, it is generally not advisable for applications to use well known schemes such as http://, https:// etc. Unlike the typical URLs, the URL 60 does not have to rely on universal protocol schemes. For example, the scheme names 62 of the URL 60, e.g., sonybiv:// and sonyrecommends://, each reference a specific application. In addition, the URL 60 is not dependent on dots in the domain name (e.g., www.microsoft.com; www.microsoft.net, www.microsoft.org). Instead, the URL 60 can have a format entirely without dots (e.g., sonybiv://launch_intent), or alternatively, could incorporate one or more dots between the scheme name 62 and handler-directive 64, or the handler-directive 64 and the rest of URL 66.
In Step 110, the URL Handler 72 of the Sony Recommends App 70 receives the URL 60, and in Step 112, the URL Handler 72 breaks up the URL 60 to separate at least one of the components of the URL 60. For example, the URL 60 shown in
In Step 114 the URL Handler 72 examines the handler-directive 64 of the URL 60 and determines in Step 116 whether the handler directive 64 of the URL 60 is supported in the URL Handler 72. To that end, a list of handler-directives supported in the URL Handler 72 may be specified in the Sony Recommends App 70 or in the URL Handler 72. For example only, the URL Handler 72 of the Sony Recommends App 70, or the URL handler of any other application, service, or functionality that receives a URL including a handler-directive, may be programmed to include a list of handler-directives that would be supported. If it is determined in Step 116 that the handler-directive 64 of the URL 60 is supported, for example, by matching the handler-directive 64 of the URL 60 to one of the handler-directives specified to be supported in the URL handler 72, then in Step 118, the Sony Recommends App 70 would launch the service referenced in the rest of URL 66 portion of the URL 60 as described above. Conversely, if it is determined in Step 116 that the handler-directive 64 of the URL 60 is not supported in the URL handler 72, for example, if the handler-directive 64 of the URL 60 does not match any of the specified handler-directives, then in Step 120, the Sony Recommends App 70 would return an error message to the user.
It is to be appreciated that the above-described methods provide uniform ways of handling URLs across a wide variety of applications, functionalities, and services in an Internet-TV context. Such methods provide improved scalability and result in an increased efficiency for programmers as well as a reduction in cost for Internet-TV and content suppliers.
Those skilled in the art will recognize that a wide variety of modifications, alterations, and combinations can be made with respect to the above described embodiments without departing from the spirit and scope of the invention, and that such modifications, alterations, and combinations are to be viewed as being within the ambit of the inventive concept.