Embodiments of the present invention relate generally to user interface technology and, more particularly, relate to a system, method, apparatus and computer program product for providing a notification mechanism, such as a notification mechanism regarding widget availability.
The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Wireless and mobile networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.
Current and future networking technologies continue to facilitate ease of information transfer and convenience to users. One area in which there is a demand to increase ease of information transfer relates to the delivery of services to a user of a mobile terminal. The services may be in the form of a particular media or communication application desired by the user, such as a music player, a game player, an electronic book, short messages, email, content sharing, web browsing, etc. The services may also be in the form of interactive applications in which the user may respond to a network device in order to perform a task or achieve a goal. The services may be provided from a network server or other network device, or even from the mobile terminal such as, for example, a mobile telephone, a mobile television, a mobile gaming system, etc.
In many situations, it may be desirable for the user to interface with a device such as a mobile terminal for the provision of an application or service. As such, a user interface may be provided to enable receipt of user input at the device and provision of output to the user. The user interface may be utilized for text input, for selection of commands, options, hotspots, etc., for displaying information, rendering content and for numerous other functions. Accordingly, a typical user interface may include input devices such as a keyboard, mouse, microphone, or other like devices, and output devices such as a display, speaker, or other like devices. In some instances a touch screen display may be utilized to function as both an input and output device.
In some situations, elements of a user interface may be graphically displayed, e.g., in a graphical user interface (GUI) element, to enable a user to select certain functions. A widget is a small specialized GUI application that may provide visual information and/or easy access to frequently used functions such as clocks, calendars, news aggregators, calculators, desktop notes, etc. In this regard, for example, a widget may be considered a downloadable, interactive virtual tool (e.g., a software tool) that provides content such as headline news, exchange rates, sports results, stock quotes, weather forecasts, multilingual phrase dictionaries, encyclopedias, maps, entertainment listings, personal online calendars, or the like to a user. These kinds of widgets, which may also be referred to as desktop widgets are often hosted by a widget engine, which may be a software service configured to run and display widgets. Widgets tend to make user interface easier and more fulfilling for users since, for example, users can utilize widgets to tailor their own user experience to a large degree. Moreover, the widgets may be provided from a variety of services.
Widgets can be utilized on personal computers (PCs) or other computing platforms including mobile devices. Mobile widgets, which are widgets designed for use on mobile terminals, have been developed in order to operate in the unique environment of mobile electronic devices. As such, mobile widgets are often configured to optimize the use of limited screen space and other resources that may be in relatively short supply on mobile terminals.
Despite the utility provided by widgets, keeping one's widget portfolio up to date may be a challenging endeavor. For example, in order to add new or updated widgets, a user may typically be required to actively check for newly added widgets. Alternatively, if one starts using a new web page that may be a desirable target for a new widget, the user may be required to actively check a library or site that lists widgets to determine whether a widget is available for the new web page. Thus, maintaining one's widget portfolio may require a continued effort that average users may find cumbersome. Accordingly, usage of widgets (or at least new widgets) may decrease over time for many users.
Accordingly, it may be desirable to provide a mechanism for overcoming at least some of the disadvantages discussed above.
A system, method, apparatus and computer program product are therefore provided to enable the provision of an improved mechanism for updating a widget portfolio. In this regard, embodiments of the present invention may provide for notifying users of available widgets for web pages of interest. As such, for example, if a particular user visits a website or web page, the user may be notified if one or more widgets are available for the visited website or web page or portion of a page (e.g., a feed indicating that a page “behind” or associated with the feed has a new widget available.
Embodiments of the invention may provide a system, method, apparatus and computer program product for advantageous employment in both mobile and fixed environments. As a result, for example, mobile terminal users may enjoy an improved user interface capability and a corresponding improved user experience.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout.
In addition, while several embodiments of the method of the present invention are performed or used by a mobile terminal 10, the method may be employed by other than a mobile terminal. Moreover, the system and method of embodiments of the present invention will be primarily described in conjunction with mobile communications applications. It should be understood, however, that the system and method of embodiments of the present invention can be utilized in conjunction with a variety of other applications, both in the mobile communications industries and outside of the mobile communications industries.
The mobile terminal 10 includes an antenna 12 (or multiple antennas) in operable communication with a transmitter 14 and a receiver 16. The mobile terminal 10 further includes an apparatus, such as a controller 20 or other processing element, that provides signals to and receives signals from the transmitter 14 and receiver 16, respectively. The signals include signaling information in accordance with the air interface standard of the applicable cellular system, and also user speech, received data and/or user generated data. In this regard, the mobile terminal 10 is capable of operating with one or more air interface standards, communication protocols, modulation types, and access types. By way of illustration, the mobile terminal 10 is capable of operating in accordance with any of a number of first, second, third and/or fourth-generation communication protocols or the like. For example, the mobile terminal 10 may be capable of operating in accordance with second-generation (2G) wireless communication protocols IS-136 (time division multiple access (TDMA)), GSM (global system for mobile communication), and IS-95 (code division multiple access (CDMA)), or with third-generation (3G) wireless communication protocols, such as Universal Mobile Telecommunications System (UMTS), CDMA2000, wideband CDMA (WCDMA) and time division-synchronous CDMA (TD-SCDMA)), with 3.9G wireless communication protocol such as E-UTRAN (Evolved UMTS Terrestrial Radio Access Network), with fourth-generation (4G) wireless communication protocols or the like. As an alternative (or additionally), the mobile terminal 10 may be capable of operating in accordance with non-cellular communication mechanisms. For example, the mobile terminal 10 may be capable of communication in a wireless local area network (WLAN) or other communication networks described below in connection with
It is understood that the apparatus such as the controller 20 includes circuitry desirable for implementing audio and logic functions of the mobile terminal 10. For example, the controller 20 may be comprised of a digital signal processor device, a microprocessor device, and various analog to digital converters, digital to analog converters, and other support circuits. Control and signal processing functions of the mobile terminal 10 are allocated between these devices according to their respective capabilities. The controller 20 thus may also include the functionality to convolutionally encode and interleave message and data prior to modulation and transmission. The controller 20 can additionally include an internal voice coder, and may include an internal data modem. Further, the controller 20 may include functionality to operate one or more software programs, which may be stored in memory. For example, the controller 20 may be capable of operating a connectivity program, such as a conventional Web browser. The connectivity program may then allow the mobile terminal 10 to transmit and receive Web content, such as location-based content and/or other web page content, according to a Wireless Application Protocol (WAP), Hypertext Transfer Protocol (HTTP) and/or the like, for example.
The mobile terminal 10 may also comprise a user interface including an output device such as a conventional earphone or speaker 24, a ringer 22, a microphone 26, a display 28, and a user input interface, all of which are coupled to the controller 20. The user input interface, which allows the mobile terminal 10 to receive data, may include any of a number of devices allowing the mobile terminal 10 to receive data, such as a keypad 30, a touch display (not shown) or other input device. In embodiments including the keypad 30, the keypad 30 may include the conventional numeric (0-9) and related keys (#, *), and other hard and soft keys used for operating the mobile terminal 10. Alternatively, the keypad 30 may include a conventional QWERTY keypad arrangement. The keypad 30 may also include various soft keys with associated functions. In addition, or alternatively, the mobile terminal 10 may include an interface device such as a joystick or other user input interface. The mobile terminal 10 further includes a battery 34, such as a vibrating battery pack, for powering various circuits that are required to operate the mobile terminal 10, as well as optionally providing mechanical vibration as a detectable output.
The mobile terminal 10 may further include a user identity module (UIM) 38. The UIM 38 is typically a memory device having a processor built in. The UIM 38 may include, for example, a subscriber identity module (SIM), a universal integrated circuit card (UICC), a universal subscriber identity module (USIM), a removable user identity module (R-UIM), etc. The UIM 38 typically stores information elements related to a mobile subscriber. In addition to the UIM 38, the mobile terminal 10 may be equipped with memory. For example, the mobile terminal 10 may include volatile memory 40, such as volatile Random Access Memory (RAM) including a cache area for the temporary storage of data. The mobile terminal 10 may also include other non-volatile memory 42, which can be embedded and/or may be removable. The non-volatile memory 42 can additionally or alternatively comprise an electrically erasable programmable read only memory (EEPROM), flash memory or the like, such as that available from the SanDisk Corporation of Sunnyvale, Calif., or Lexar Media Inc. of Fremont, Calif. The memories can store any of a number of pieces of information, and data, used by the mobile terminal 10 to implement the functions of the mobile terminal 10. For example, the memories can include an identifier, such as an international mobile equipment identification (IMEI) code, capable of uniquely identifying the mobile terminal 10. Furthermore, the memories may store instructions for determining cell id information. Specifically, the memories may store an application program for execution by the controller 20, which determines an identity of the current cell, i.e., cell id identity or cell id information, with which the mobile terminal 10 is in communication.
The MSC 46 can be coupled to a data network, such as a local area network (LAN), a metropolitan area network (MAN), and/or a wide area network (WAN). The MSC 46 can be directly coupled to the data network. In one typical embodiment, however, the MSC 46 is coupled to a gateway device (GTW) 48, and the GTW 48 is coupled to a WAN, such as the Internet 50. In turn, devices such as processing elements (e.g., personal computers, server computers or the like) can be coupled to the mobile terminal 10 via the Internet 50. For example, as explained below, the processing elements can include one or more processing elements associated with a computing system 52 (two shown in
The BS 44 can also be coupled to a serving GPRS (General Packet Radio Service) support node (SGSN) 56. As known to those skilled in the art, the SGSN 56 is typically capable of performing functions similar to the MSC 46 for packet switched services. The SGSN 56, like the MSC 46, can be coupled to a data network, such as the Internet 50. The SGSN 56 can be directly coupled to the data network. In a more typical embodiment, however, the SGSN 56 is coupled to a packet-switched core network, such as a GPRS core network 58. The packet-switched core network is then coupled to another GTW 48, such as a gateway GPRS support node (GGSN) 60, and the GGSN 60 is coupled to the Internet 50. In addition to the GGSN 60, the packet-switched core network can also be coupled to a GTW 48. Also, the GGSN 60 can be coupled to a messaging center. In this regard, the GGSN 60 and the SGSN 56, like the MSC 46, may be capable of controlling the forwarding of messages, such as MMS messages. The GGSN 60 and SGSN 56 may also be capable of controlling the forwarding of messages for the mobile terminal 10 to and from the messaging center.
In addition, by coupling the SGSN 56 to the GPRS core network 58 and the GGSN 60, devices such as a computing system 52 and/or origin server 54 may be coupled to the mobile terminal 10 via the Internet 50, SGSN 56 and GGSN 60. In this regard, devices such as the computing system 52 and/or origin server 54 may communicate with the mobile terminal 10 across the SGSN 56, GPRS core network 58 and the GGSN 60. By directly or indirectly connecting mobile terminals 10 and the other devices (e.g., computing system 52, origin server 54, etc.) to the Internet 50, the mobile terminals 10 may communicate with the other devices and with one another, such as according to the Hypertext Transfer Protocol (HTTP) and/or the like, to thereby carry out various functions of the mobile terminals 10.
Although not every element of every possible mobile network is shown and described herein, it should be appreciated that the mobile terminal 10 may be coupled to one or more of any of a number of different networks through the BS 44. In this regard, the network(s) may be capable of supporting communication in accordance with any one or more of a number of first-generation (1G), second-generation (2G), 2.5G, third-generation (3G), 3.9G, fourth-generation (4G) mobile communication protocols or the like. For example, one or more of the network(s) can be capable of supporting communication in accordance with 2G wireless communication protocols IS-136 (TDMA), GSM, and IS-95 (CDMA). Also, for example, one or more of the network(s) can be capable of supporting communication in accordance with 2.5G wireless communication protocols GPRS, Enhanced Data GSM Environment (EDGE), or the like. Further, for example, one or more of the network(s) can be capable of supporting communication in accordance with 3G wireless communication protocols such as a UMTS network employing WCDMA radio access technology. Some narrow-band analog mobile phone service (NAMPS), as well as total access communication system (TACS), network(s) may also benefit from embodiments of the present invention, as should dual or higher mode mobile stations (e.g., digital/analog or TDMA/CDMA/analog phones).
The mobile terminal 10 can further be coupled to one or more wireless access points (APs) 62. The APs 62 may comprise access points configured to communicate with the mobile terminal 10 in accordance with techniques such as, for example, radio frequency (RF), infrared (IrDA) or any of a number of different wireless networking techniques, including wireless LAN (WLAN) techniques such as IEEE 802.11 (e.g., 802.11a, 802.11b, 802.11g, 802.11n, etc.), world interoperability for microwave access (WiMAX) techniques such as IEEE 802.16, and/or wireless Personal Area Network (WPAN) techniques such as IEEE 802.15, BlueTooth (BT), ultra wideband (UWB) and/or the like. The APs 62 may be coupled to the Internet 50. Like with the MSC 46, the APs 62 can be directly coupled to the Internet 50. In one embodiment, however, the APs 62 are indirectly coupled to the Internet 50 via a GTW 48. Furthermore, in one embodiment, the BS 44 may be considered as another AP 62. As will be appreciated, by directly or indirectly connecting the mobile terminals 10 and the computing system 52, the origin server 54, and/or any of a number of other devices, to the Internet 50, the mobile terminals 10 can communicate with one another, the computing system, etc., to thereby carry out various functions of the mobile terminals 10, such as to transmit data, content or the like to, and/or receive content, data or the like from, the computing system 52. As used herein, the terms “data,” “content,” “information” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
Although not shown in
In an exemplary embodiment, content or data may be communicated over the system of
An exemplary embodiment of the invention will now be described with reference to
In the context of the description below, a widget should be understood as being, for example, a desktop widget, a mobile widget, an application or software component that may operate in the context of another program (e.g., a browser) to perform a function, or the like. In an exemplary embodiment, a widget could generally be configured with, for example, any feed such as an RSS feed, other feeds, utility widgets, etc. Thus, any web site with RSS fees links could potentially be associated with a widget. As such, embodiments of the present invention may be utilized on either mobile or fixed platforms (or a combination thereof). Moreover, as will be seen below, in one exemplary embodiment, a user at a fixed platform such as a PC may be made aware of the availability of mobile widgets associated with a particular visited website and the user may select one or more available mobile widgets for download and storage at a mobile terminal that may be associated with the user. Similarly, a mobile user could designate widgets for download and storage at a PC associated with the mobile user. Thus, the user may designate widgets for download and storage at a device that is remote from (e.g., a different device than) the device from which the designation for downloading is provided. These and other features may be accomplished via the exemplary apparatus described below in reference to
Referring now to
The processor 70 may be embodied in a number of different ways. For example, the processor 70 may be embodied as various processing means such as a processing element, a coprocessor, a controller or various other processing devices including integrated circuits such as, for example, an ASIC (application specific integrated circuit) or an FPGA (field programmable gate array). In an exemplary embodiment, the processor 70 may be configured to execute instructions stored in the memory device 76 or otherwise accessible to the processor 70. Meanwhile, the communication interface 74 may be embodied as any device or means embodied in either hardware, software, or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the apparatus. In this regard, the communication interface 74 may include, for example, an antenna and supporting hardware and/or software for enabling communications with a wireless communication network. In fixed environments, the communication interface 74 may alternatively or also support wired communication. As such, the communication interface 74 may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB) or other mechanisms.
The user interface 72 may be in communication with the processor 70 to receive an indication of a user input at the user interface 72 and/or to provide an audible, visual, mechanical or other output to the user. As such, the user interface 72 may include, for example, a keyboard, a mouse, a joystick, a touch screen display, a conventional display, a microphone, a speaker, or other input/output mechanisms. In an exemplary embodiment in which the apparatus is embodied as a server or some other network devices, the user interface 72 may be limited, or eliminated. However, in an embodiment in which the apparatus is embodied as a mobile terminal (e.g., the mobile terminal 10), the user interface 72 may include, among other devices or elements, any or all of the speaker 24, the ringer 22, the microphone 26, the display 28, and the keyboard 30.
In an exemplary embodiment, the processor 70 may be embodied as, include or otherwise control a widget availability determiner 78 and/or a widget availability notifier 80. The widget availability determiner 78 and the widget availability notifier 80 may each be any means such as a device or circuitry embodied in hardware, software or a combination of hardware and software that is configured to perform the corresponding functions of the widget availability determiner 78 and the widget availability notifier 80, respectively, as described below.
In this regard, the widget availability determiner 78 may be configured to enable the apparatus to determine whether a currently visited site has an available widget associated therewith. An “available widget” as referred to herein may mean a widget that can be installed in which the widget may be associated with the site currently being visited. The available widget may simply be a widget associated with a site; however, the available widget could alternatively be a widget that is a widget that is associated with the site, but also not installed on a particular device associated with the user or a widget that is associated with the site and is an updated version of a widget that is already installed on a device of the user. In an exemplary embodiment, the available widget could be a widget that is recommended by another entity. For example, other visitors to a particular website or of a particular widget may recommend the widget or otherwise provide the widget with a favorable rating. In an exemplary embodiment, if the widget associated with a particular website is recommended by or given a favorable rating by a threshold number of visitors to the website, any subsequent visitor to the website may receive an indication of an available widget with respect to the widget associated with the website. As an alternative, recommendations from trusted parties or individuals in a contact or friend list may be used to generate indications of available widgets on a personal level for a user whose friends have recommended a particular website. As such, for example, the widget availability determiner 78 of one exemplary embodiment may be configured to receive information indicative of a visited site (e.g., a website or web page that is currently being viewed by a browser of a user's device), such as a web address, and determine, for the address associated with the visited site, whether one or more widgets (e.g., available widgets) are available for download and/or installation in association with the visited site.
In an exemplary embodiment, a component in a web browser or browser plugin of the user's device (e.g., the mobile terminal 10 or a PC) may provide information on the visited site (e.g., web page address, keywords extracted from the HTML code of a web page, links, feeds (e.g., RSS (really simple syndication format) or ATOM (atom syndication format)), or the like) to identify the visited site to the widget availability determiner 78 for use by the widget availability determiner 78 in accessing information regarding widget availability for the visited site. In an exemplary embodiment, the widget availability determiner 78 may be configured to access information regarding widget availability by searching existing widgets (e.g., in a widget library) for widgets associated with the visited site as identified based on the provided information on the visited site. The associated widgets may be considered widgets available for download to a device associated with the user. In some embodiments, the widget availability determiner 78 may be further configured to determine which of the widgets that are considered to be available for download to the device of the user are not currently stored on or in association with the device associated with the user. As such, for example, if a particular site is visited and the visited site has two associated widgets, only one of the widgets may be indicated as being an available widget if the other widget is already stored in association with the device of the user.
In an exemplary embodiment, the apparatus of
In an alternative exemplary embodiment, the apparatus of
As an alternative to the embodiments described above in which the apparatus of
As indicated above, in one exemplary embodiment, one device associated with the user may be utilized to check the availability of new widgets with respect to another device associated with the user. As such, for example, the user may use a PC employing the apparatus of
The widget availability notifier 80 may be configured to notify the user (e.g., via the user interface 72) of the availability of widgets associated with the visited site. In an exemplary embodiment, the widget availability notifier 80 may alternatively provide information related to content within a widget. As such, for example, the widget availability notifier 80 may be configured to receive information from the widget availability determiner 78 indicative of the available widgets associated with the visited site. In some embodiments, the information indicative of the available widgets may include only those widgets that are new relative to the user's device upon which the widgets could be employed. In other words, the widget availability determiner 78 may filter out widgets that, although associated with the visited site and available for use at the device of the user, are already stored in association with the device of the user and installed thereon. However, in alternative embodiments, the widget availability determiner 78 may provide a complete listing of available widgets to the widget availability notifier 80.
Furthermore, although the widget availability notifier 80 may inform a user at one device of widgets available for installation on another device, the widget availability notifier 80 may also be able to consider the availability of widgets for numerous devices associated with a particular user. In this regard, for example, a user profile may be maintained that may indicate, for each of several devices, which widgets are installed on each respective device. Accordingly, when the widget availability determiner 78 operates to determine which widgets are available for each respective device associated with the user for a visited site, the widget availability determiner 78 may check a single widget library for each widget associated with the visited site and filter information provided to the widget availability notifier 80 based on which widgets are already installed on various ones of the devices associated with the user. The widget availability notifier 80 may then notify the user of the widgets available and, in some cases, which of the widgets are available for respective devices. In this regard, for example, the widget availability notifier 80 may provide an icon or other graphical indicator to indicate that one or more widgets are available and, in response to user selection of the icon or graphical indicator, the user may be provided with specific information identifying which widgets are available for which corresponding devices. Alternatively, the icon or graphical indicator may be device specific.
Accordingly, after receiving the information indicative of the available widgets (either including all available widgets or only the new available widgets) the widget availability notifier 80 may be configured to inform the user of the available widgets. In an exemplary embodiment, the widget availability notifier 80 may provide a notification (e.g., see element 210 of
Thus, the widget availability notifier 80 may be configured to generate a notification to be displayed to the user if a widget is available. Selection of the notification may enable the user to select one or more of the available widgets for storage in association with a device associated with the user. In some embodiments, the widget availability notifier 80 may be configured to generate controls for enabling the user to install a selected widget among those indicated as being available. As such, the widget availability notifier 80 may be configured to receive the user selection and provide for widget download and/or storage accordingly. In this regard, for example, when a user selection is made (e.g., via the user interface 72), the selection may be communicated to the widget availability notifier 80, which may be configured to provide information to a server or device storing the selected widget to initiate installation of the widget at a device of the user. Thus, for example, the widget availability notifier 80 may be configured to provide interface elements for notifying the user of the availability of widgets and also to respond to user selection of a widget to initiate downloading of the selected widget to a device associated with the user.
In embodiments where the device to which the widget is to be provided is in communication with the server or location where the widget is stored, the installation of the widget may be conducted automatically and without user input. However, if there is no active connection between the server or location where the widget is stored and the device to which the widget is to be provided, then the widget may be installed when the next connection is made. In some embodiments, the listing of widgets may be decentralized and the browser or plugin may get an identification or listing of other servers to which a connection may be made in order to access particular widgets from the list or to access the list of widgets itself. In another exemplary embodiment, the browser or plugin may periodically query a widget server or library in order to cache information regarding available widgets in memory. Thus, a device employing such an embodiment may check widget availability locally, which may reduce a number of HTTP requests used to check availability of widgets for a given page.
Accordingly, according to an exemplary embodiment of the present invention, notification to a user of available widgets may be provided in the context of a viewed or visited web page. Thus, if there is an available widget for the currently visited or viewed web page, the notification is provided or activated and otherwise the notification is not visible to the user. The notification works in the context of any particular web page and does not require changes to the web page.
In an exemplary embodiment, the widget library 104 may be in communication with a WidSets service server. Using a WidSets service, the user can provide favorite content directly to the user's mobile terminal. The user can also share preferred content with other users or publish content to the web. In the WidSets service, the user can register the user's device select widgets from, for example, a dashboard on the device. The WidSets service server may be connected to respective URLs and, if a change is made to a URL or information associated therewith, an indication of the change may be provided to the user via the dashboard. In some embodiments, the WidSets service server may have or be provided with knowledge of existing widgets. Thus, if the user requests a widget associated with a particular URL, the widget can be added to the dashboard, for example, by linking user information (e.g., an account number) and the request. When the user's device gets a subsequent update to the dashboard, the URL associated with the particular URL may be synchronized with the service server and the widget can be shown on the device's display. If the widget does not exist, the WidSets service server may have a record of one or more URLs requests for which the user has intended to generate and create a widget. In one embodiment, the server may inquire as to whether the user would like to create a widget. If the user indicates a desire to create a widget, the widget may be loaded onto the dashboard.
Accordingly, blocks or steps of the flowcharts support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that one or more blocks or steps of the flowcharts, and combinations of blocks or steps in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
In this regard, one embodiment of a method for providing a notification of widget availability as illustrated, for example, in
In some embodiments, the method may include further optional operations some examples of which are shown in dotted lines in
In an exemplary embodiment, receiving an indication of the visited location may include receiving the indication from a device other than the device associated with the user to which the notification is provided. Meanwhile, providing the notification may include providing a notification of widget availability with respect to a plurality of user devices associated with the user. In an exemplary embodiment, determining whether the visited location is associated with the widget may include referencing a widget library for widgets within the library that are associated with the visited location. In some embodiments, determining whether the visited location is associated with the widget that is not installed on the device associated with the user may include comparing a set of widgets within the library that are associated with the visited location with a set of widgets already installed on the device or determining whether the visited location is associated with an updated version of a widget previously installed on a device associated with the user.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe exemplary embodiments in the context of certain exemplary combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.