包括任务栏覆盖的动态网络应用通知的制作方法

文档序号:6360856阅读:163来源:国知局
专利名称:包括任务栏覆盖的动态网络应用通知的制作方法
包括任务栏覆盖的动态网络应用通知
背景技术
最近,行业已开始聚焦于将网络应用或网络站点与用户的计算机桌面环境或“桌面”集成的概念。虽然如此,存在与这样做相关联的挑战。例如,现在对于网络站点来说难以定义用于桌面集成目的的其站点边界。由此,留给终端用户通过其自己开发的客户端脚本定义边界。这可能是有问题的,因为终端用户可能未必知道特定网络站点是如何被构造的。例如,终端用户可能未必知道全部的链接、网络属性之间的关系或网络站点用于为用户提供功能的其它细微差别。相应地,终端用户的脚本可能未认识到这些链接或细微差别,并且因此可能导致不合意或蹩脚的用户体验。另外,用户现在面临称为双引导(dual boot)的问题。确切地说,用户被迫引导其个人计算机、开启其浏览器,并且最后启动其希望在其中进行操作的特定网络应用。该问题 复合了这一事实浏览器可以为用户提供太多干扰,例如出现在浏览器chrome中的那些,并且不允许用户简单地专心于与网络应用关联的手边的特定任务。

发明内容
提供本发明内容来以简化形式介绍下面在具体实施方式
中进一步描述的概念的选摘。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,其也不旨在用于限制所要求保护的主题的范围。各种实施例提供一种允许终端用户将网络应用或网络站点安装到例如客户端设备桌面的客户端设备的机制。根据一个或多个实施例,客户端代码可以用于允许与网络站点关联的开发人员定义与用户交互关联的边界,并且使得那些边界通过运行时引擎来施行。在至少某些实施例中,开发人员可以通过JavaScript代码提供用于开始菜单快捷键的创建、导航和所谓的跳转列表集成以及许多其它特征的各种配置。


贯穿附图,相同数字用于指相同特征。图I示出了根据一个或多个实施例的运行环境,本文中描述的各种原理可以在该运行环境中被使用。图2示出了根据一个或多个实施例的网络应用窗口。图3示出了根据一个或多个实施例的JavaScript API。图4是描述根据一个或多个实施例的安装方法中的步骤的流程图。图5是描述根据一个或多个实施例的网络应用交互方法中的步骤的流程图。图6示出了根据一个或多个实施例的客户端桌面的部分。图7示出了根据一个或多个实施例的JavaScript API。图8示出了根据一个或多个实施例的网络站点与定制的跳转列表之间的动态交互。图9示出了根据一个或多个实施例的客户端桌面的部分。
图10示出了根据一个或多个实施例的客户端桌面的部分。图11是描述根据一个或多个实施例的安装方法中的步骤的流程图。图12是描述根据一个或多个实施例的方法的步骤的流程图。图13是描述根据一个或多个实施例的方法中的步骤的流程图。图14示出了根据一个或多个实施例的客户端桌面。图15示意地示出了根据一个或多个实施例的拖放操作。图16是描述根据一个或多个实施例的安装方法中的步骤的流程图。
图17示出了根据一个或多个实施例的客户端桌面。图18是描述根据一个或多个实施例的安装方法中的步骤的流程图。图19示出了根据一个或多个实施例的客户端桌面。图20是描述根据一个或多个实施例的方法中的步骤的流程图。图21示出了根据一个或多个实施例的客户端桌面。图22示出了根据一个或多个实施例的、显示网络站点的浏览器、证书存储、关联的网络应用和网络应用证书存储之间的关系。图23是描述根据一个或多个实施例的方法中的步骤的流程图。图24是描述根据一个或多个实施例的方法中的步骤的流程图。图25示出了根据一个或多个实施例的多个网络应用实例的示例。图26示出了根据一个或多个实施例的客户端桌面。图27是描述根据一个或多个实施例的方法中的步骤的流程图。图28是描述根据一个或多个实施例的方法中的步骤的流程图。图29示出了根据一个或多个实施例的客户端桌面。图30示出了根据一个或多个实施例的客户端桌面。图31示出了根据一个或多个实施例的客户端桌面。图32是描述根据一个或多个实施例的方法中的步骤的流程图。图33是描述根据一个或多个实施例的方法中的步骤的流程图。图34是描述根据一个或多个实施例的方法中的步骤的流程图。图35示出了根据一个或多个实施例的、网络应用与浏览器之间的关系。图36是描述根据一个或多个实施例的方法中的步骤的流程图。图37是描述根据一个或多个实施例的方法中的步骤的流程图。图38示出了根据一个或多个实施例的暂时网络应用的示例。图39示出了根据一个或多个实施例的站点模式浏览器。图40是描述根据一个或多个实施例的方法中的步骤的流程图。图41示出了可以用于实现一个或多个实施例的示例系统。
具体实施例方式综沭
各种实施例提供一种允许终端用户将网络应用和网络站点安装到例如客户端设备桌面的客户端设备上的机制。根据一个或多个实施例,客户端代码可以用于允许与网络站点关联的开发人员定义与用户交互关联的边界,并且使得那些边界通过运行时引擎施行。在至少某些实施例中,开发人员可以通过JavaScript代码提供用于开始菜单快捷键的创建、导航和所谓的跳转列表集成以及其它特征的各种配置。可以将边界看作开发人员定义的与如何将功能暴露给终端用户相关的体验。边界与网络站点域相关联,所述网络站点域例如是顶级域和可能与单独应用或以域为宿主的网络站点子集相关联的子域。因此,边界可以由用于使特定网络应用运行的域、子域、文件夹、子站点、协议、主机、路径等的集合来定义。在一个或多个实施例中,网络站点可以选择以上和以下描述的功能。在此情况下,开发人员可以提供这样的代码,所述代码在某些情况下用JavaScript来表述,其定义关于其网络站点的用户体验的边界。可替换地或另外,不选择以上和以下描述的功能的网络站点可以提供默认体验。在以下讨论中,命名为“运行环境”的小节被提供,并且描述一个在其中可以采用一个或多个实施例的环境。在此之后,命名为“集成基础设施”的小节描述根据一个或多个实施例的使网络应用能够被集成到客户端设备的基础设施。接下来,命名为“跳转列表集 成”的小节描述根据一个或多个实施例所谓的跳转列表可以如何被集成。接下来,命名为“任务栏固定”的小节描述根据一个或多个实施例网络应用可以如何被固定到任务栏。在此之后,命名为“关联证书和登录会话”的小节描述根据一个或多个实施例证书和登录会话可以如何被关联。接下来,命名为“使用关联的证书创建和启动网络应用”的小节描述根据一个或多个实施例网络应用可以如何被创建和启动。在此之后,命名为“网络应用任务会话”的小节描述根据一个或多个实施例的任务会话的概念。接下来,命名为“网络应用与浏览器之间的转换”的小节描述根据一个或多个实施例转换可以如何在网络应用与浏览器之间发生。在此之后,命名为“从浏览器创建暂时网络应用”的小节描述根据一个或多个实施例暂时网络应用可以如何从浏览器被创建。接下来,命名为“将暂时网络应用转换为安装的网络应用”的小节描述根据一个或多个实施例暂时网络应用可以如何被转换为安装的网络应用。在此之后,命名为“网络应用超级主页按钮”的小节描述根据一个或多个实施例的与网络应用相关联的主页按钮。最后,命名为“示例系统”的小节描述可以用于实现一个或多个实施例的示例系统。现在考虑一个或多个实施例可以在其中被实现的示例运行环境。运行环境
图I大体上在100处示出了根据一个或多个实施例的运行环境。环境100包括计算设备102,其中,计算设备102具有一个或多个处理器104、一个或多个计算机可读存储介质106以及一个或多个驻留在计算机可读存储介质中并且可被(多个)处理器执行的应用108。计算机可读存储介质作为示例并且不作为限制可以包括通常与计算设备相关联的所有形式的易失性和非易失性存储器和/或存储介质。所述介质可以包括ROM、RAM、闪存、硬盘、可移除介质等。计算设备的一个特定示例下面在图41中被示出和描述。另外,计算设备102包括采用网络浏览器110的形式的软件应用。任意合适的网络浏览器可以被使用,所述浏览器的示例从本文档的受让人和其他人处可得。另外,计算机可读存储介质106可以包括如以上和以下描述的那样运行的网络应用模式浏览器111。网络应用模式浏览器111充当运行时引擎,该运行时引擎接收和产生分别来自和去往网络站点的API调用、监视网络应用安装过程、施行边界以及实现如以上和以下所描述的功能。在运行时,网络应用模式浏览器是完全浏览器的削减版本,其中,许多正常浏览器功能被关闭。在某些情况下,可以将网络应用模式浏览器看作不包括许多通常浏览器控制的“比chrome少”的浏览器。然而,某些命令可以通过微型控制栏暴露。网络应用模式浏览器由此为用户移除许多干扰,并且允许定向的、网络站点定义的用户体验,在所述用户体验中,网络站点可以控制用户如何与其网络应用进行交互。在运行时,可以认为网络应用模式浏览器逻辑上驻留在网络站点与客户端设备的操作系统之间。由此,网络应用模式浏览器从网络站点接收调用,并且可以作为响应进行操作系统调用来影响本文中描述的功能。同样,网络应用模式浏览器可以从操作系统接收将影响网络站点的功能的调用。例如,操作系统暴露实现与桌面的任务栏的交互的API。网络应用模式浏览器可以从网络站点接收调用,并且作为响应可以进行API调用,所述API调用 实现如下面将变得显而易见的任务栏功能。网络应用模式浏览器111可以被实现为单独的组件。可替换地或另外,网络应用模式浏览器111可以被实现为应用108和/或浏览器110的一部分。另外,环境100包括例如互联网的网络112以及一个或多个网络站点114,其中,可以从所述一个或多个网络站点114接收内容并向其发送内容。如以上和以下描述的那样,所述内容可以包括被集成到客户端桌面或可通过客户端设备使用的例如网络应用的内容。计算设备102可以被体现为任意合适的计算设备,作为示例并且不作为限制,例如是桌面计算机、便携式计算机、诸如个人数字助理(PDA)的手持计算机、蜂窝电话等。已描述了示例性运行环境,现在考虑对允许网络应用集成到客户端设备的基础设施的讨论。集成基础设施
根据一个或多个实施例,网络站点可以选择作为更常见的“站点模式”体验的一部分而被提供的域导航。域导航使网络站点能够定制当用户访问特定域内部和外部的链接时其现存网络站点的行为。当访问开发人员指定的边界内部的链接时,内容可以在网络应用窗口内被渲染和消费,该网络应用窗口作为关联的网络应用的一部分由网络应用模式浏览器渲染。当访问开发人员指定的边界外部的链接时,关联的内容可以在网络应用模式浏览器之外的默认浏览器内被渲染和消费。这允许网络站点定义哪些域应当被看作网络站点的扩展,以及哪些不应当。在一个或多个实施例中,导航域可以由网络开发人员定义,并且标识那些其内容被网络应用模式浏览器作为集成的网络站点的一部分、或在网络应用模式浏览器之外在默认浏览器中显示的链接。另外,默认域参数可以被定义,其用于将网络应用页面的集合关联
在一起。作为示例,考虑下面的行内域页面定义
^contoso. crm. dynamics. com\木;木.microsoft. com\木;
该域页面定义将允许采用下方形式的URI在同一桌面网络应用窗口中显示 sales, contoso. crm. dynamics. com\* hr. contoso. crm. dynamics\*
木· microsoft. com\crm\
同样,该域页面定义将迫使其它URI在桌面网络应用窗口之外被显示,即使链接引用在桌面网络应用窗口内的页面内部 www. bing. com home. live, com
在上面的域页面定义中,通配符在网络应用安装API内被使用。该API通常在用户选择由网络站点提供的网络站点集成链接时被网络站点调用。该API可以用将被用于启动网络站点快捷键的位于桌面、任务栏或开始菜单或任意其它合适位置处的信息和内容填充网络应用文件或“.webapp”文件。应当认识到和理解,任意合适的文件扩展可以用于定名网络应用文件。导航域和其它边界信息被存储在.webapp文件内。当.webapp文件被启动时,其中的导航域被网络应用模式浏览器111施行。被用户选择或被网络站点访问的链接只要其匹配通配符域则继续在网络应用窗口内执行。然而,当检测到在定义的导航域之外的网络站点时,默认浏览器被实例化或被使用,并且与该网络站点相关联的内容在网络应用窗口之外并且在默认浏览器之内被显示。
作为示例,考虑图2,该图示出了具有导航域集合a. com (202)、b. com (204)和d. com (206)的网络应用窗口 200,其意味着来自这些域的所有页面在网络应用窗口 200内被显示。当来自c. com (208)或e. com (210)的页面从网络应用窗口 200内被访问时,其在默认浏览器窗口并且不是在网络应用窗口 200中被显示。图3在300处示出了的根据一个或多个实施例的JavaScript API。所示出的JavaScript API使网络站点能够将网络应用与客户端桌面集成。该API定义将被网络应用或运行时引擎施行的导航域。在该示例中,使用如上面示出的通配符表达式来描述导航域。该API实现使用客户端设备上的内容和信息对.webapp应用文件302的填充或更新,并且将导航域及其它信息存储在其中。这些导航域在网络应用被启动时被施行。在所示和所描述的实施例中,.webapp应用文件302包括网络站点已为其站点模式配置定义的信息。该信息包括起始URL,其是被网络应用模式浏览器显示的初始页面;网络站点已指定的导航域的全部;网络应用标题;以及所谓的收藏图标(favicon)。如将在下面描述的,可以包括其它信息。现在,一旦网络应用在客户端上被启动,则网络应用模式浏览器读取网络应用文件并施行其中定义的边界。如以上指出的,因为网络应用体验由熟知特定网络站点及其细微差别的开发人员定义,所以可以提供完整和集成的用户体验。图4是描述根据一个或多个实施例的安装方法中的步骤的流程图。该方法可以被任意合适的硬件、软件、固件或其组合执行。在至少某些实施例中,该方法的方面被执行在客户端设备上的软件执行。步骤400选择网络站点集成特征。该步骤可以以任意合适的方式被执行。通常,该步骤在用户选择手段(instrumentality)或采取动作来发起网络应用安装过程时被执行。例如,用户可能选择使其能够集成网络应用的链接。下面提供了这可以如何被完成的特定示例。步骤402在客户端设备上创建网络应用文件一这里定名为“· webapp”文件。该文件当初始被创建时可以构成构件(artifact)或壳(shell),所述构件或壳可以随后使用从网络站点或代表网络站点接收的内容和信息来填充。步骤404用网络应用内容填充网络应用文件。该步骤可以以任何合适的方式被执行。例如,该步骤可以通过使用上面和下面提供了其示例的JavaScript API来执行。可替换地或另外,该步骤可以通过使用例如HTML的标记来执行。已在客户端上创建了网络应用文件并且用内容填充了该网络应用文件,现在可以启动网络应用并与之进行交互。图5是描述根据一个 或多个实施例的网络应用交互方法中的步骤的流程图。该方法可以由任意合适的硬件、软件、固件或其组合来执行。在至少某些实施例中,该方法的方面由在客户端上执行的软件和在支持网络站点的服务器上执行的软件执行。相应地,图的一列被定名为“客户端”,以便指定那些例如由客户端或在客户端处由网络应用模式浏览器执行的步骤,以及,一列被定名为“网络站点”,以便指明哪些由网络站点或代表网络站点执行的步骤。步骤500接收对站点模式的用户选择。该步骤可以以任意合适的方式被执行。例如,安装在客户端桌面上的快捷键可以用于接收站点模式选择。响应于接收到站点模式选择,步骤502请求起始URL。起始URL可以在上面描述的网络应用文件中找到。步骤504接收起始URL请求。步骤506向客户端返回包括与起始URL相关联的内容的关联网络资源。步骤508接收关联的网络资源,并且步骤510在网络应用窗口中渲染网络资源。如以上描述的,网络应用窗口由网络应用模式浏览器渲染。步骤512接收关于在网络应用窗口中渲染的资源的用户交互。用户交互可以包括任意合适类型的用户交互。例如,用户交互可以包括源自网络应用窗口内的导航活动。步骤514探知用户交互是否在由网络应用文件定义的边界内。如果用户交互在由网络应用文件定义的边界内,则步骤516在网络应用窗口中渲染与用户交互相关联的内容。如果另一方面,用户交互不在由网络应用文件定义的边界内,则步骤518在默认网络浏览器中渲染与用户交互相关联的内容。这样,由网络站点开发人员针对特定网络站点定义的边界可以被施行,以确保用户体验保持如开发人员所期望的。例如,网络站点定义的起始URL是主页,并且在网络应用模式下的主页的随后访问导航到起始URL,而非用户初始定义的浏览器主页。这允许对网络应用特定页面而不是一些不相关主页的快速访问。这减轻了终端用户不得不定义可能或可能不正确运行的其自己的站点特定体验的负担。同样,可以为终端用户提供完整的、集成的和智能管理的体验。已描述了示例性安装和交互体验,现在考虑跳转列表集成的概念。跳转列表集成
在一个或多个实施例中,开发人员可以使网络站点能够在桌面集成期间定义一系列所谓的跳转列表任务,所述跳转列表任务可用于与网络站点进行交互。另外,在至少某些实施例中,网络站点可以创建和更新定制的跳转列表。可以将跳转列表看作这样的列表,该列表构成被呈现给用户的一组相关任务或内容。通过跳转列表,网络站点可以向用户提示相关和有用信息的提炼。跳转列表与特定网络应用的能力或功能相关。例如,用于电子邮件应用的跳转列表可能包括这样的任务,所述任务给予用户打开联系人、创建新电子邮件消息等的能力。在某些情况下,跳转列表可以包括相关并且最常使用的命令和数据的列表。在一个或多个实施例中,跳转列表功能可以被实现为包括静态元素和动态元素两者。开发人员可以在如上面描述的填充网络应用文件的网络应用安装过程期间定义静态元素。与静态元素相关联的设置可以被存储在网络应用文件内部。在一个或多个实施例中,设置可以包括列表名称和关联的任务。在至少某些情况下,静态元素可以构成代表通常被使用的功能的元素。与动态元素相关联的设置可以由在网络应用窗口内部运行的网络站点页面驱动。这些设置包括动态地为用户暴露可识别标记的设置。例如,一个设置可以向定制的跳转列表添加项目,以及一个设置可以显示覆盖图标,其示例在下面提供。在至少某些实施例中,动态设置可以在每次网络应用启动时被清除,并且可以由网络应用脚本代码配置。
作为根据一个实施例的定制的跳转列表的示例,考虑图6,该图大体上在600处示出了客户端桌面的一部分。根据一个或多个实施例,暴露了定制的跳转列表602。此处,静态元素在604处示出,以及动态元素在606处示出。在本示例中,静态元素列表名称是“任务”,并且任务或静态元素包括“新电子邮件消息”、“新约会”、“新联系人”和“新任务”。动态元素列表名称是“今天”,并且任务或动态元素在本示例中包括从用户的日历生成的提醒。动态元素由关联的网络站点动态地填充。因此,在本示例中,动态元素或内容与向用户提供通知相关联,通常与用户的动作独立。如以上指出的,跳转列表可以在桌面集成过程期间被定义。任务和跳转列表定义可以被存储在网络应用文件内部。作为示例,考虑在700处示出的根据一个或多个实施例的JavaScript API的图7。所示的JavaScript API使网络站点能够与客户端桌面集成和定义跳转列表。除了存在“定制的任务”和“定制的跳转列表”之外,该JavaScript API可以与参考图3描述的那个相同或类似。为简洁起见,图3内容的一些已被省略。在至少某些实施例中,跳转列表任务的静态列表的初始创建可以例如使用在HTML文档内部定义的HTML标签通过标记来定义。例如,考虑下面使用元标签来描述静态列表功能的示例
〈META name=,,misapplication-task”
content=,,name=Task;uri=http://marap/test3. html;icon_uri=http://marap/icon3. ico,,/>
在一个或多个实施例中,当任务被执行时,存在数个选项。例如,与任务相关联的URL可以在包含当前被查看的网页的同一网络应用/浏览器窗口内被打开。可替换地或另外,可以启动新页面。可替换地或另外,可以显示新弹出窗口。在这些参数被定义并被系统读取之后,其可以在用户将网络站点安装在其桌面上时被使用,所述安装例如是如下面描述的那样通过将其添加到开始菜单或将其固定到任务栏。同时,在至少某些实施例中,跳转列表上存在可以被网络站点客户端代码操纵的一组动态值。“定制的任务”被网络站点用于定义如上面所描述的静态任务。在本示例中,静态任务是新消息静态任务。该API在桌面上创建.webapp应用文件702,并且存储导航域(如在图3的示例中那样)和例如关联于跳转列表的信息的其它信息。在所示和所描述的实施例中,.webapp应用文件702包括网络站点已针对其站点模式配置而定义的信息。该信息包括起始URL、网络站点已指定的导航域的全部(未具体示出)、网络应用标题和所谓的收藏图标。其它信息包括与上面提到的新消息关联的定制的任务和“定制的列表”。在本示例中,定制的列表元素是可以由网络站点在网络应用正运行在客户端上时动态填充的动态元素。此处,“朋友”定名包括关联于动态内容的头部。因此,在此情况下,动态内容与当用户的朋友在线时向其提供通知相关联。此处,定制的列表是不驻留网络应用内的单独API。然而,定制的任务驻留网络应用内。在运行时,关联于静态元素的项目可以在网络应用正运行时被预取和高速缓存。另一方面,关联于动态元素的项目可以在网络应用正运行时由网络站点运行中地提供。作为关联于动态元素的项可以如何被运行中地提供给网络应用的实现示例,考虑图8。图8示出了网络站点如何能够动态地与定制的跳转列表进行交互以允许用户知道消息已到达。在本示例中,JavaScript 800示出了网络站点可以如何向以网络应用模式浏览器为宿主的页面发送更新。在浏览器中执行的客户端代码负责接收更新,更新屏幕上的内容,以及向跳转列表发送用于更新其列表的请求。在本示例中,网络站点能够向跳转列表推送信息以提供实时体验。这里,当例如新消息O和新消息I的新消息被网络站点接收时,可以从网络应用进行JavaScript调用来更新跳转列表802。在至少某些实施例中,通知 可以出现在任务栏804中,以便通知用户相关信息已被接收。通知可以出现在任务栏中的任何合适位置处,并且可以包括任意合适类型的通知。例如,通知可以出现在与网络应用关联的图标806中或附近。可替换地或另外,通知可以闪烁以便吸引用户的眼球。作为示例,考虑图9。此处,大体在900处示出了客户端桌面的部分。任务栏901包括与当前网络应用关联的图标902。这里注意到,覆盖图标904已在902内被渲染。在本示例中,用户已接收到新消息,并且网络站点已如上面描述的那样调入网络应用来导致覆盖图标904在图标902内被渲染。这向用户提供新消息已到达的通知。作为看到覆盖图标904的响应,用户可以访问跳转列表905来暴露指示当前正在发生或即将发生的约会的元素908。还应当注意到,元素906也被暴露。JavaScript摘录910示出了可以用于更新覆盖图标的代码的一个示例。网络站点与网络应用之间的动态交互可以以各种其它方式发生。例如,在至少某些实施例中,响应于用户关于网络站点的动作,可以将预览窗口从网络站点推送给跳转列表。在所示和所描述的实施例中,预览窗口是由网络站点提供的微型视图。可以响应于任何合适类型的用户动作而提供预览窗口。例如,在至少某些实施例中,可以响应于鼠标停留在与网络站点关联的任务栏图标上而将预览窗口从网络站点推送到跳转列表。可替换地或另外,可以通过将光标放在网络应用的任务栏图标上并左键点击来提供预览窗口。作为示例,考虑图10。此处,大体在1000处示出了客户端桌面的部分。任务栏1001包括与当前网络应用关联的图标1002。此处注意到,用户已将其光标放在图标1002上。作为响应,预览窗口 1004已被渲染。在运行时,响应于用户将其光标放在图标上的动作,事件被发送给网络页面。作为接收到事件的响应,网络页面可以然后动态地提供预览,或导致已高速缓存的预览窗口被渲染。在至少某些实施例中,预览窗口可以还被网络站点用于定义工具栏按钮和关联的行为。例如,在所示和所描述的实施例中,网络应用包括媒体播放器应用,并且三个工具栏按钮出现在被覆盖在预览窗口 1004上的用户接口手段1006中。按钮包括暂停按钮、停止按钮和播放按钮。在至少某些实施例中,工具栏按钮可以使用客户端代码来实现,所述客户端代码避免了不得不与远程服务器进行交互。例如,可以为特定网络页面注册各个按钮。为每个按钮配置和指派了 ID。为所有按钮事件注册一个“监听器”。当按钮被按下时,事件被生成并被传输回浏览器,浏览器然后将事件传播到已注册的事件监听器。事件包含被按下的按钮。这实现了按钮之间的歧义消除。实现示例
在一个实现示例中,网络开发人员可以使用下面的JavaScript函数来更新跳转列表中的定制列表和更新任务栏覆盖图标
列表创建行为
这定义列表名称,该列表名称是定制的列表的标题。该值将作为列表表头被显示。可选地,可以提供包含项目的名称、该项目的URI值和关联于该项目的图像的项目列表来初始地填充列表。当浏览器在网络应用模式下被启动时,可以支持该功能。列表更新行为
提供列表项目值来更新特定列表项目。列表项目值包括该项目的名称、该项目的URI和关联于该项目的图像。当浏览器在网络应用模式下被启动时,可以支持该功能。设置覆盖图标
指定URI值,该URI值指向将被用作用于现有任务栏图标的覆盖的图标。当浏览器在网络应用模式下被启动时,可以支持该功能。设置预览图像
URI,其指向应当被用作用于任务栏预览图像(或拇指栏预览)的图形表示的图像。当用户用鼠标左键在任务栏图标上点击时,显示该预览。清除覆盖图标
这移除任务栏图标上的现有覆盖图标。当浏览器在网络应用模式下被启动时,可以支持该功能。网络开发人员可以使用以下JavaScript函数来定义和修改被显示在特定网络站点的任务栏预览窗口中的一组工具栏按钮。工具栏按钮安装
使用工具提示和图像URL指定按钮ID的列表。当用户选择工具栏按钮时,事件被传递给网络站点进行处理。网络站点可以然后消除按钮事件之间的歧义。当站点模式窗口被打开时,该调用被执行至少一次,以便使按钮被显示。当浏览器在网络应用模式下被启动时,支持该功能。更新图像
这识别了已指定的按钮ID的状态和可见性。可以启用或禁用该状态。在至少某些实施例中,默认地,所述按钮被启用。视图可以被显示或隐藏。默认地,已定义的按钮是可见的。当浏览器在网络应用模式下被启动时,支持该功能。图11是描述根据一个或多个实施例的安装方法中的步骤的流程图。方法可以被任意合适的硬件、软件、固件或其组合执行。在至少某些实施例中,方法的各方面由在客户端设备上执行的软件执行。步骤1100选择网络站点集成特征。该步骤可以以任意合适的方式被执行。通常,当用户选择手段或以其它方式采取行动来发起网络应用安装过程时,该步骤被执行。例如,用户可以选择使其能够集成网络应用的链接。下面提供了这可以如何被完成的特定示例。步骤1102在客户端设备上创建网络应用文件一这里定名为“.webapp”文件。该文件当初始被创建时可以构成构件或壳,其中,随后可以使用从网络站点或代表网络站点接收的内容和信息填充该器具或壳。步骤1104使用在本示例中包括跳转列表的网络应用内容填充网络应用文件。该步骤可以以任意合适的方式被执行。例如,该步骤可以通过使用上面描述了其示例的JavaScript API来执行。可替换地或另外,该步骤的各方面可以通过使用例如HTML的标记来执行。已在客户端上创建和填充了网络应用文件,网络应用现在可以在任意合适的时间被启动。图12示出了描述根据一个或多个实施例的方法的步骤的流程图。所述步骤可以结合任意合适的硬件、软件、固件或其组合来执行。在至少某些实施例中,所述方法可以由在客户端上执行的软件关联于在服务器上执行的软件来执行。
步骤1200接收关联于跳转列表的用户动作。任何合适的用户动作可以被接收,上面提供了其示例。例如,在至少某些实施例中,可以接收到关于具体显示的跳转列表或未被显示的跳转列表的用户动作。可替换地或另外,可以接收到关于显示的关联于网络应用的图标的用户动作。图标可以例如在桌面任务栏或任意其它合适的位置处被显示。上面提供了所述动作的示例。步骤1202呈现了与用户动作关联的内容。例如,呈现的内容可以包括跳转列表其自身。可以响应于上面提供了其示例的任意合适类型的用户动作而呈现跳转列表。呈现的内容可以还包括除跳转列表其自身之外的内容。例如,可以响应于例如在任务栏图标上的左键点击的用户动作而呈现定制的预览窗口。例如,用户可以选择创建或创作新电子邮件消息。图13是描述根据一个或多个实施例的方法中的步骤的流程图。该方法可以由任意合适的硬件、软件、固件或其组合执行。在至少某些实施例中,该方法的各方面由在客户端上执行的软件和在支持网络站点的服务器上执行的软件来执行。相应地,图中的一列被定名为“客户端”,以便指明那些由客户端或在客户端处执行的步骤,以及一列被定名为“网络站点”,以便指明那些由网络站点或代表网络站点执行的步骤。步骤1300接收与动态跳转列表项目关联的信息。任意合适的跳转列表项目可以充当信息被接收的基础,上面提供了其示例。步骤1302生成通知,以及步骤1304将通知发送到执行网络应用的客户端设备。步骤1306接收通知,以及步骤1308为用户提供可识别的通知。可以提供任意合适类型的可识别通知。例如,在至少某些实施例中,可识别通知可以是例如覆盖图标或闪烁的网络应用图标的视觉可识别通知。可替换地或另外,可识别通知可以包括例如振铃或蜂鸣的听觉可识别通知。已考虑了与跳转列表集成关联的各种实施例,现在考虑这样的讨论根据一个或多个实施例,网络站点可以如何变得被“固定”到例如任务栏的桌面特征。仟务栏固定
存在各种在其中网络应用可以变得与客户端桌面或任务栏集成的方式。在至少某些实施例中,网络应用可以通过拖放操作与桌面集成。可替换地或另外,网络应用可以经由网络浏览器的菜单选择被集成。可替换地或另外,网络应用可以通过关联的网络站点其自身被集成。下面,这些实施例的每个在其自己的标题下被讨论。通过拖放操作集成
在一个或多个实施例中,网络应用可以通过拖放操作与桌面或任务栏集成。作为示例,考虑图14。此处,大体上在1400处示出了客户端桌面。网络浏览器窗口 1402包括在其中显示了网络站点URL的地址栏1404。关联于URL。示出了称为“收藏图标”的图标1406。另外,桌面1400包括任务栏1408。图15示意地示出了根据一个或多个实施例的拖放操作。在本示例中,光标已被放在收藏图标1406上。通过在收藏图标上左键点击并将其拖到任务栏1408,关联的网络应用——在此情况下为消息板应用——可以被固定到桌面的任务栏1408。拖放操作开始如上面描述的集成网络应用的集成过程,由此将其固定到任务栏。在一个或多个实施例中,如果与网络应用关联的网络页面在浏览器中打开了标 签,则在收藏图标被放到任务栏上之后,关联的标签可以从浏览器的窗口消失。可替换地或另外,标签可以不被移除,但作为代替,标签的内容可以用“新标签”页代替。在其中单一标签在浏览器窗口中被打开的情况下,在收藏图标被固定到任务栏之后,浏览器窗口将消失。在这一点上,包含在原始站点中的标签可以在浏览器关闭之前但在网络应用被固定之后被移除。另外,在至少某些实施例中,当拖动操作进入任务栏时,可以呈现“固定到任务栏”形式的工具提示,以便通知用户该固定功能。进一步地,被固定到任务栏的网络站点或网络应用的状态可以在网络应用第一次被实例化时被迁移到新显示的窗口。这将允许用户不必为能够使用应用而重新输入针对站点的证书。已将网络站点或网络应用固定到任务栏并且完成了如上面所描述的安装过程,网络应用现在可以通过简单地在关联的收藏图标上进行点击来从任务栏启动。图16是描述根据一个或多个实施例的安装方法中的步骤的流程图。该方法可以由任意合适的硬件、软件、固件或其组合执行。在至少一些实施例中,该方法的各方面由在客户端上执行的软件执行。步骤1600接收对关联于网络应用安装的拖放操作的指示。该步骤可以以任意合适的方式来执行。在上面描述的实施例中,当用户拖放关联于网络站点的例如收藏图标的图标以指示网络站点期望将关联的网络应用与其桌面集成时,该步骤被执行。例如,用户可以将收藏图标拖放到任务栏、快速启动区域或例如桌面画布的桌面上某个其它位置处。步骤1602响应于拖放操作而创建网络应用文件。在所示和所描述的实施例中,初始创建的网络应用文件是还不包含来自关联的网络站点的信息的构件或壳,所述信息例如是跳转列表任务、起始URL、收藏图标或诸如静态跳转列表任务、可替换起始URL、可替换收藏图标等的其它属性。这些可以稍后通过如上面所描述的新标记和/或JavaScript API来添力口。应当认识到和理解,在不脱离所要保护的主题的精神和范围的情况下,可以利用除使用JavaScript API的那些之外的技术。通过浏览器菜单诜择集成
在一个或多个实施例中,网络应用可以经由网络浏览器的菜单选择被集成。作为示例,考虑图17。此处,大体上在1700处示出了客户端桌面。网络浏览器窗口 1702包括显示了URL的地址栏1704。另外,桌面1700包括任务栏1706。示出了页面菜单形式的浏览器菜单项1708。通过下拉页面菜单以暴露菜单选择1710,显示了菜单项或选择“添加到开始菜单”。通过选择该选项,网络站点或网络应用可以被添加到桌面的开始菜单,并且安装过程可以如上面描述的那样被发起。可替换地或另外,可以显示“添加到任务栏”菜单项或选择以实现安装过程的发起。图18是描述根据一个或多个实施例的安装方法中的步骤的流程图。该方法可以由任意合适的硬件、软件、固件或其组合执行。在至少某些实施例中,该方法的各方面由在客户端上执行的软件执行。步骤1800接收浏览器菜单选择。该步骤可以以任意合适的方式被执行。在上面描述的实施例中,当用户导航到特定网络站点、下拉浏览器菜单以暴露菜单选择并然后通过选择与发起关联于网络站点的网络应用的安装关联的菜单项采取动作时,该步骤被执行。步骤1802响应于接收到浏览器菜单选择而创建网络应用文件。在所示和所描述的实施例中,初始创建的网络应用文件是还不包含来自关联的网络站点的信息的构件或壳,所述信息例如是跳转列表任务、起始URL、收藏图标等。这些可以稍后通过如上面所描述 的新标记和/或JavaScript API来添加。应当认识到和理解,在不脱离所要保护的主题的精神和范围的情况下,可以利用除使用JavaScript API的那些之外的技术。通过关联的网络站点集成
在一个或多个实施例中,网络应用与桌面的集成可以从网络页面发生。在这些实施例中,特定网络站点可以选择通过使用例如JavaScript的代码的集成活动,以便将网络应用集成到桌面。这允许网络站点控制集成发起手段。作为示例,考虑图19。此处,大体上在1900处示出了客户端桌面。网络浏览器窗口 1902包括在其中显示了 URL的地址栏1904。另外,桌面1900包括任务栏1906。进一步地,显示在浏览器窗口 1902中的网络页面包括命名为“添加到桌面”的链接1908。通过在该链接上点击,用户可以发起如上面所描述的网络应用安装过程。在至少某些实施例中,在链接选择发生之后,可以呈现模态确认对话框,该模态确认对话框解释用户正在采取的用户动作以及到何处访问其新创建的快捷方式。该确认对话框可以向用户呈现正被呈现的页面的源URL。被显示的URL可以包含网络站点的全路径。这可以允许用户验证其希望安装的网络站点正从正确的站点提供。这可以缓解关联于恶意子目录的情况。在各种实施方式中,检查将与桌面集成的网络站点的URL,以便确认其位于与包含其的网络页面相同的域中。如果不是,则可以显示错误,并且操作失败。在用户确认操作之后,可以移除对话框,并且网络应用窗口可以显示正确的URL。图20是描述根据一个或多个实施例的安装方法中的步骤的流程图。该方法可以由任意合适的硬件、软件、固件或其组合执行。在至少某些实施例中,该方法的各方面由在客户端上执行的软件执行。步骤2000显示带有集成链接的网络页面。该步骤可以以任意合适的方式被执行,上面提供了其示例。步骤2002接收对集成链接的选择。步骤2004响应于接收到链接选择而创建网络应用文件。在所示和所描述的实施例中,初始创建的网络应用文件是还不包含来自关联的网络站点的信息的构件或壳,所述信息例如是跳转列表任务、起始URL、收藏图标等。这些可以稍后通过如上面所描述的新标记和/或JavaScript API来添加。应当认识到和理解,在不脱离所要保护的主题的精神和范围的情况下,可以利用除使用JavaScriptAPI的那些之外的技术。在至少某些实施例中,可以为用户提供关联于网络应用的多个窗口或标签的视觉表示。作为示例,考虑图21。此处,桌面2100包括在其上固定了网络应用图标的任务栏2102。光标已被用于通过在图标上进行点击来启动网络应用。在本示例中,假设用户已使用网络应用的起始页面导航到多个页面。网络应用可以实现示出用户已导航到的网络页面集合2104的可视化展示。具体地,在本示例中,集合2104包括用于网络应用的起始页面2106,以及用户已从起始页面导航到的后续页面2108和2110。已考虑了各种网络应用集成技术,现在考虑对用户证书可以如何与针对网络应用的登录会话相关联的讨论。关联证书和登录会话 各种实施例使与使用登录或证书信息的网络站点关联的一个或更多网络应用能够以跨网络应用的不同实例保存登录或证书信息的方式被集成。当浏览器导航到使用登录或证书信息的网络站点时,登录或证书信息可以被手动输入或从证书存储中检索出。证书存储可以包含针对特定URL的,作为示例并且不作为限制,诸如用户名和密码的用于登录信息或用户证书。同一 URL或网络站点可以具有多个条目,每个条目关联于不同的用户。类似地,证书存储可以包含针对多个URL的用户登录信息或证书。在至少某些实施例中,与用户登录进的网络站点相关联的网络应用可以如上面描述的那样被集成到桌面并与之进行交互。当所述网络应用被集成时,过程确定网络应用关联于什么网络站点以及登录进该网络站点的用户。过程在证书存储中搜索关联的登录信息和/或证书。过程可以然后在用户、所创建的网络应用和相关证书之间创建关联。作为示例,考虑图22,其示出了根据一个或多个实施例网络站点、证书存储与网络应用之间的关系。浏览器2200显示使用登录信息的网络站点。除显示URL之外,显示了图标2210,该图标可以被选择以便进行如上面所描述的网络应用的集成。证书存储2220包括条目,所述条目包含针对多个网络站点的登录信息。一个所述条目在2230处示出。这里,条目包括网络站点URL、用户名和密码。尽管图22将登录信息示为包括用户名和密码,但应当认识到和理解,可以使用其它形式的登录信息或证书。在一个或多个实施例中,图标2210可以被选择并拖放到任务栏2235上,如上面描述和由图标2240所示的那样。该过程发起关联于网络站点的网络应用的集成。在该选择被接收后,过程确定哪个用户当前登录到了网络站点并在证书存储2220中搜索关联的证书。然而应当认识到和理解,在不脱离所要保护的主题的精神的情况下,可以以其它方式确定和/或获取该关联的证书。当获取到用户的证书和/或登录信息时,在网络应用证书存储2250中进行证书与网络应用之间的关联。网络应用证书存储2250可以包含一个或多个条目,所述条目包含与网络站点、网络应用和有关证书之间的关联相关的数据。例如,图22示出了条目2260,该条目被示为包含属于网络站点“a. com”针对用户jsmith的登录信息。除URL、用户名和密码信息之外,条目2260还包括可以用于将网络应用与对应证书相关联的应用ID或“AppID”。网络应用证书存储2250还包含针对同一网络站点“^(^!!!”但不同用户^^观丨访的第二条目2270。该机制允许将来自同一网络站点的各个网络应用与不同用户及其关联的证书相关联。尽管图22中未示出,但可以将各种形式的用户登录信息和/或证书与网络应用相关联。例如,在一个实施例中,关联可以包含回指到证书存储2220中的信息的指针或引用。在另一实施例中,网络应用证书存储2250可以包括从证书存储复制的信息。在又另一实施例中,可以将与用户名和密码分离或除其之外的证书与网络应用相关联。例如,生物统计信息可以形成在网络应用证书存储中创建的关联的基础。已描述了网络站点、证书存储和网络应用之间的关系,现在针对使用关联证书的网络站点考虑网络应用可以如何被集成。使用关联i正书创建和启动网络应用
图23示出了描述根据一个或多个实施例的方法中的步骤的流程图。该方法可以由任 意合适的硬件、软件、固件或其组合执行。在至少某些实施例中,方法的各方面由在客户端上执行的软件执行。步骤2300接收对网络站点集成特征的选择。上面提供了这可以如何来完成的示例。如上面描述的,网络站点集成特征与网络应用在客户端桌面上的安装相关联。响应于接收到对网络站点集成特征的选择,步骤2302发起如上面描述的安装过程以在客户端桌面上安装网络应用。具体地,客户端上该过程的发起可以包括如上面描述的创建网络应用文件。步骤2304获取与关联于网络站点的当前网络会话相关联的会话信息。该步骤可以以任意合适的方式来执行。例如,在一个实施例中,可以使用渲染关联于网络站点的内容的浏览器与安装过程之间的共享存储器部件来获取会话信息。在另一实施例中,网络站点可以自动在网络站点集成特征被选择之后转发会话信息。在又另一实施例中,会话信息可以被浏览器存储并随后被查询。响应于获取会话信息,步骤2306获取与会话信息相关的证书。在一个实施例中,可以在证书存储中查询与用户登录进的网络站点相关的登录和/或证书。例如,可以在证书存储中查询与网络站点和当前会话的用户关联的用户名和密码。步骤2308将与会话信息相关的证书和/或登录信息与网络应用相关联。该步骤可以以任意合适的方式来执行。例如,证书可以被复制到网络应用证书存储以便将来弓丨用。可替换地或另外,指向证书存储中的证书的指针或引用可以被放入网络应用证书存储中。可以至少部分上基于会话信息和/或证书生成标识号,以便为每个网络应用实例和相关证书和/或登录信息创建唯一的ID。可以将该信息添加到网络应用证书存储条目,以便将获得的证书和/或登录信息与网络应用相关联。然而应当认识到和理解,在不脱离所要保护的主题的精神和范围的情况下,可以使用任意合适的技术将证书与网络应用相关联。如上面描述的,针对每个网络应用实例的唯一 ID允许多个网络应用实例与同一URL或网络站点相关联,其中,每个实例与不同用户证书相关联。图24是描述根据一个或多个实施例的方法中的步骤的流程图。该方法可以由任意合适的硬件、软件、固件或其组合执行。在至少某些实施例中,方法的各方面由在客户端上执行的软件执行。步骤2400接收对要启动网络应用的选择。该步骤可以以任意合适的方式来执行。例如,如上面描述的,可以从图标固定其上的任务栏进行图标选择。可替换地或另外,可以从桌面开始菜单或系统工具栏进行选择。当接收到对要启动网络应用的选择时,步骤2402检索与网络应用关联的证书。例如,在一个或多个实施例中,可以使用AppID来引用网络应用证书存储以便检索针对当前登录的用户的登录信息。步骤2404检索关联于网络应用和相关证书的URL和/或FormID。当获取到步骤2402和2404中描述的信息时,步骤2406在没有用户介入的情况下自治地登录进关联的网络站点。在登录进网络站点后,步骤2408如之前在上面描述的那样导航到起始URL。已描述了与证书关联的网络应用如何被集成和启动,现在考虑对具有关联证书的多个网络应用实例的讨论。具有关联i正书的多个网络应用实例
图25示出了与证书关联的多个网络应用实例的示例。网络应用证书存储2500包括属于针对网络站点的网络应用和关联证书的数据。包括在网络应用证书存储2500中的是条 目2510和2520,每个针对不同的用户。如图25中所示,条目2510属于网络站点“a. com”,并且包含用于登录进关联网络站点的例如用户名jsmith和密码bulldogs的额外信息。条目2510包括AppID,该AppID用于将条目与网络应用2530关联。条目2520也属于网络站点“a. com”,但包含针对用户bsmith的登录信息并与网络应用2540关联。尽管图25将条目示为包含URL/FormID、用户名、密码和AppID,但应当认识到和理解,在不脱离所要保护的主题的精神的情况下,可以使用不同形式的关联和证书信息。由此,网络应用证书存储中的两个或多个数据条目可以包含标识被集成到客户端桌面的不同网络应用的数据,并且每个具有关联于同一网络站点的不同用户证书。在一个或多个实施例中,关联于同一网络站点的一个或多个网络应用可以同时存在或被激活。例如,软件模块可以被配置为使网络应用能够经由桌面工具栏被启动,以及当网络应用被启动时使用关联证书自动地将关联用户登录进网络站点。除启动单一网络应用夕卜,软件模块可以被配置为在选择启动第二网络应用时,实现使用针对同一网络站点或不同网络站点的不同用户证书启动第二网络应用。例如,图25的两个网络应用2530、2540同时被激活。如上面描述的,每个都属于网络站点“a. com”,但具有与其关联的不同证书。当网络应用2530被选择并启动时,其自治地使用关联于用户jsmith的证书登录到网络站点“a. com”。类似地,当网络应用2540被选择并启动时,其使用关联于用户bsmith的证书登录到网络站点“a. com”。由此,关联于同一网络站点的多个网络应用实例可以被同时激活并关联于不同证书。已描述了创建和启动具有关联证书的网络应用的概念,现在考虑对网络应用任务会话的讨论。网络应用仟务会话
在一个或多个实施例中,可以创建任务会话以便使关联于网络应用的状态信息能够被保存到系统。状态信息作为示例并且不作为限制可以包括会话cookie、JavaScript状态、DOM状态、表单状态、tab和窗口定位、窗口尺寸、URL、历史等。因为关联于特定任务会话的状态信息被保存,所以网络应用可以被关闭并且稍后被重新打开以便恢复或重新水化(re-hydrate)针对网络应用的状态信息。可以自动地或通过手工选择过程保存状态信息。
作为示例,考虑图26。此处,桌面2600包括正被用于计划旅行的网络应用窗口2602。桌面2600还包括任务栏2604和跳转列表2606。网络应用目录2608提供可以用于存储任务会话状态信息的存储设施。在所示和所描述的实施例中,网络应用目录2608在系统的用户空间中被创建。在本示例中,用户具有两个已保存的任务会话——一个关联于波多黎各旅行,以及一个关联于阿拉斯加旅行。在运行时,当用户与网络应用进行交互时,用户可以通过任意合适的手段选择创建和保存任务会话。在所示的示例中,跳转列表2606具有包括两个条目的菜单项“任务”。第一个条目“新任务会话”使用户能够创建新任务会话。第二个条目“保存当前任务”使用户能够保存当前任务。通过保存当前任务,关联于任务的状态信息被持久化到网络应用目录2608。命名为“打开任务会话”的菜单项包含条目,所述条目使用户能够恢复或重新水化已被持久化到网络应用目录2608的先前任务会话。这里存在两个先前提到、先前保存的任务会话——波多黎各旅行和阿拉斯加旅行。如从上面示例中指出的,可以针对各个网络应用创建和保存多个任务会话。当任·务会话被保存时,关联于网络应用的应用ID可以与任务会话一起被保存。应用ID可以然后用于确定哪个网络应用将消费关联于保存的任务会话的信息。可以使用任意合适的技术和方法使任务会话能够被创建和保存。在至少某些实施例中,系统可以利用或使用关联于系统的网络浏览器的崩溃恢复系统。在此情况下,崩溃恢复功能可以例如当用户选择保存当前任务或创建新任务会话时被触发。崩溃恢复功能可以创建“appdata”文件,该“appdata”文件可以驻留在用户的应用数据目录中,并且可以用于保存关联于任务会话的信息。本领域的技术人员将理解崩溃恢复系统的具体操作。相应地,为简洁起见,本文中未描述所述系统。图27是描述根据一个或多个实施例的、用于保存任务会话状态信息的方法中的步骤的流程图。所述步骤可以结合任意合适的硬件、软件、固件或其组合被执行。在至少某些实施例中,所述方法可以由在客户端上执行的软件关联于在服务器上执行的软件来执行。步骤2700接收关联于保存任务会话状态信息的输入。任意合适的输入可以被接收。例如,接收的输入可以包括从用户接收的输入。可替换地或另外,输入可以包括某种类型的自动、程序输入。在至少某些实施例中,用户输入可以经由跳转列表被接收。可替换地或另外,用户输入可以经由快捷键被接收。在所示和所描述的实施例中,用户输入指示用户希望保存关联于网络应用的任务会话状态信息。步骤2702在网络应用目录中创建或访问任务会话数据结构。任务会话数据结构用于保存任务会话状态信息。步骤2704将任务会话状态信息保存在数据结构中。该步骤可以以任意合适的方式执行。例如,该步骤可以在用户选择保存任务会话状态信息时被执行。可替换地或另外,该步骤可以在用户与网络应用交互期间定期被执行。在至少某些实施例中,步骤2702和2704可以使用网络浏览器的崩溃恢复系统来执行。然而应当认识到和理解,在不脱离所要保护的主题的精神和范围的情况下,可以使用其它技术。图28是描述根据一个或多个实施例的、用于恢复其状态信息已被保存的任务会话的方法中的步骤的流程图。所述步骤可以结合任意合适的硬件、软件、固件或其组合被执行。在至少某些实施例中,所述方法可以由在客户端上执行的软件关联于在服务器上执行的软件而执行。步骤2800接收用户输入,该用户输入关联于恢复其状态信息先前已被保存的任务会话。步骤2802在网络应用目录中访问任务会话数据结构。如上面指出的,任务会话的状态信息被保存在任务会话数据结构中。步骤2804从网络应用目录检索任务会话状态信息。步骤2806启动关联的网络应用并使用从网络应用目录检索出的任务会话状态信息恢复任务会话。已描述了保存和重用任务会话状态信息的概念,现在考虑转换可以如何在网络应用与浏览器之间被执行。网络应用与浏览器之间的转换
在一个或多个实施例中,网络应用可以转换为浏览器体验以便能够利用浏览器功能,所述浏览器功能不可以由实现网络应用的网络应用模式浏览器提供。应当记得,这是因为,·在某些实施例中,网络应用模式浏览器是使开发人员能够提供更多站点特定体验的经削减或比chrome少的浏览器。被从网络应用模式浏览器中排除的所述其它功能可以例如包括收藏夹、工具栏和/或其它附加组件。在至少某些实施例中,关联于各个标签的内容和状态可以被从网络应用迁移到网络浏览器。可替换地或另外,关联于多个标签的内容和状态和/或网络应用的全部内容和状态可以被从网络应用迁移到网络浏览器。可替换地或另外,关联于各个标签的会话可以被从网络应用迁移到浏览器。考虑这样的情形,其中,用户已从其桌面启动网络应用,已导航到其中,并且在新标签中打开一个或多个链接。作为示例,考虑图29。此处,桌面2900包括网络应用窗口2902,网络应用窗口 2902包括正被用于制定旅行计划的网络应用的部分。桌面2900还包括任务栏2904,其中,网络应用例如通过在已被固定到任务栏的关联图标上进行点击而从该任务栏被启动。网络应用窗口 2902包括三个标签2906、2908和2910。在此情况下,用户已选择标签2906,并且具有用户可以打开的链接“点击这里搜索航班”。现在假设用户在关联链接上进行点击来打开该链接,并且,当打开链接时,决定她想为显示在标签2906中的网络站点创建收藏夹项。在此情况下,用户可以打开工具菜单2912,或使用某种其它用户接口手段,并且选择选项以便在关联的网络浏览器中打开标签的内容。作为示例,考虑图30,该图使用与图29相同的数字。此处,工具菜单2912已被打开为暴露其内容3000。在该示例中,对于用户有两个选择可用一“在浏览器中打开标签…”和“在浏览器中打开网络应用…”。第一个选择使用户能够在网络浏览器中打开所选择标签的内容。当所选择标签在网络浏览器中被打开时,该标签的内容和状态被迁移到网络浏览器。网络浏览器可以是具有打开的实例的那个,或者可替换地是被启动的那个。第二个选择使用户能够在网络浏览器中打开网络应用的全部内容。当这被完成时,网络应用的内容和状态被迁移到网络浏览器。可以使用任意合适的技术将内容和状态从网络应用标签或网络应用迁移到网络浏览器。在至少某些实施例中,迁移通过使用例如上面描述的网络浏览器的崩溃恢复系统发生。特别地,当用户指示希望将内容和状态从网络应用迁移到网络浏览器时,内容和状态可以例如通过写appdata文件而被写入系统盘,其中,该appdata文件包括将被迁移的相关数据。
另外,在至少某些实施例中,可以使用共享存储器来迁移通常不被网络浏览器的崩溃恢复系统使用的信息或数据。例如,例如证书和会话cookie的数据可以被存储在共享存储器中,并且该共享存储器可以用于使所述数据能够被网络浏览器使用。一旦用户选择显示在工具菜单2912中的特定选项,则信息和数据可以被迁移到网络浏览器的当前或新实例,并且网络应用窗口 2902中的关联标签可以被关闭。在一个或多个实施例中,如果信息或数据正被从其迁移的标签是网络应用中打开的唯一标签,则在迁移完成之后网络应用可以被关闭。当网络应用和网络浏览器跨过程边界地在不同过程中执行时,上面描述的方法运行良好。即,使用崩溃恢复系统和共享存储器的迁移非常适合跨过程边界。然而,在某些情况下,过程边界不必被跨过。相反,网络应用和随后的网络浏览器功能可以从同一过程内暴露。具体地,在此情况下,网络浏览器用户接口可以结合网络应用窗口 2902被实例化和使用,并且通过网络应用模式浏览器不可用的功能可以通过网络浏览器用户接口被打开和使其可访问。在运行时,一种实现此的方法如下。网络应用首先生成一些崩溃恢复文件。新浏览器被启动并从崩溃恢复文件加载崩溃恢复信息。该信息然后被用于配置新浏览器的状 态。当用户在新浏览器内操作时,他或她将经由浏览器的标准用户接口具有对全部浏览器功能的访问。图31示出了一个实施例,在其中,用户已选择将关联于标签的内容和状态迁移到新浏览器实例。已使用与图29示例相同的数字。这里,假设用户已针对标签2906选择“在浏览器中打开标签”菜单选择(图30)。作为响应,该标签的内容和状态被迁移到网络浏览器的新实例,其中,该网络浏览器新实例的关联用户接口窗口在3100处示出。用户接口窗口 3100包括地址栏3102和与已被从网络应用迁移的标签关联的标签3104。在本示例中应当指出,标签2906 (图30)已在网络应用窗口 2902中被关闭,但因为多个标签是打开的,所以网络应用保持打开。图32是描述根据一个或多个实施例的方法中的步骤的流程图。所述步骤可以结合任意合适的硬件、软件、固件或其组合来执行。在至少某些实施例中,所述方法可以由在客户端上执行的软件关联于在服务器上执行的软件而执行。步骤3200接收关联于将网络应用内容和/或状态迁移到网络浏览器的用户输入。任意合适的输入可以被接收。例如,在至少某些实施例中,可以通过由网络应用暴露的工具菜单接收输入。步骤3202将网络应用内容和/或状态迁移到网络浏览器。可以使用任意合适的技术来迁移网络应用内容和/或状态。另外,处于任意合适的粒度级别的内容和/或状态可以被迁移。例如,关联于网络应用的各个标签或多个标签的内容和/或状态可以被迁移。可替换地或另外,网络应用的全部内容可以被迁移。进一步地,在至少某些实施例中,迁移可以跨过程边界而发生。可替换地或另外,迁移可以在同一过程内发生。图33是描述根据一个或多个实施例的方法中的步骤的流程图。所述步骤可以结合任意合适的硬件、软件、固件或自组合来执行。在至少某些实施例中,所述方法可以由在客户端上执行的软件关联于在服务器上执行的软件而执行。步骤3300接收关联于将网络应用内容和/或状态迁移到网络浏览器的用户输入。任意合适的输入可以被接收。例如,在至少某些实施例中,可以通过由网络应用暴露的工具菜单接收输入。步骤3302实例化网络浏览器用户接口。步骤3304使用网络浏览器用户接口暴露功能。暴露功能包括实现通过网络浏览器用户接口与网络应用内容进行交互。在至少某些实施例中,所暴露的功能包括通过网络应用或网络应用模式浏览器不可用并且可用于与web应用内容进行交互的功能。上面提供了所述功能的示例。在其中网络应用内容和/或状态的迁移在同一过程内发生的情况下,图33的方法可以是有用的。图34是描述根据一个或多个实施例的方法中的步骤的流程图。所述步骤可以结合任意合适的硬件、软件、固件或其组合执行。在至少某些实施例中,所述方法可以由在客户端上执行的软件关联于在服务器上执行的软件而执行。步骤3400接收关联于将网络应用内容和/或状态迁移到网络浏览器的用户输入。任意合适的输入可以被接收。例如,在至少某些实施例中,可以通过由网络应用暴露的工具菜单接收输入。步骤3402保存关联于网络应用内容的数据。该步骤可以以任意合适的方式执行。例如,在至少某些实施例中,数据中的至少某些可以被写到系统盘。可以使用任意合适的记录将数据写到系统盘。例如,在至少某些实施例中,可以使用网络浏览器的崩溃恢复系统将数据写到系统盘。进一步地,在至少某些实施例中,步骤3402可以通过使用在网·络应用与网络浏览器之间被共享的共享存储器来执行。步骤3404探知网络浏览器是否是打开的。如果网络浏览器是打开的,则步骤3406使用已保存的数据在网络浏览器中呈现网络应用内容。另一方面,如果网络浏览器不是打开的,则步骤3408启动网络浏览器,并且返回至步骤3406以便使用保存的数据来呈现网络应用内容。从浏览器创建暂时网络应用
各种实施例实现一个或多个所谓的暂时网络应用的创建。在至少某些实施例中,暂时网络应用可以在不如上面描述的那样将暂时网络应用固定到任务栏或将暂时网络应用的关联文件或标记集成到客户端桌面的情况下被创建。例如,暂时网络应用可以没有任何提供使其能够被启动或重新启动的方法的、集成到客户端桌面的用户接口手段,例如开始菜单中的快捷键、客户端任务栏中的快捷键图标等。然而在所述情况下,用户可以从其关联的网络站点启动暂时网络应用,并且如果网络应用已如上面描述那样被安装或集成,则用户可以访问由该网络应用提供的相同功能。在使用暂时网络应用之后,其可以然后被用户关闭。在至少某些实施例中,一旦暂时网络应用已被关闭,则用户不再可访问网络应用的该特定示例,由此致使暂时网络应用不可从客户端桌面工具栏或开始菜单重新启动。一种达到此的方法是,删除用户初始从关联网络站点启动网络应用时针对该网络应用创建的文件或过程。在某些实施例中,暂时网络应用可以被转换为安装的网络应用,由此提供从客户端桌面对网络应用的未来访问。作为示例,考虑图35,其示出了暂时网络应用与浏览器之间的关系。这里,浏览器3500通过标签式系统实现对多个网络页面的访问,其中,标签3510关联于网络站点“任意搜索页面”,以及,标签3520关联于“第二打开页面”。在一个或多个实施例中,可以从打开的网络页面创建暂时网络应用。在图35中,通过用户选择标签3510并将该选择拖放到桌面上浏览器3500之外,生成或创建了暂时网络应用3530。当这发生时,暂时网络应用文件可以在临时位置被创建。然而应当认识到和理解,在不脱离所要保护的主题的精神和范围的情况下,可以以其它方式生成暂时网络应用。例如,浏览器3500可以具有下拉菜单,该下拉菜单用于便利网络页面的选择以及随后关联的暂时网络应用的生成。在本文档的上下文中,暂时网络应用是没有以已在本文档上面描述的方式安装在客户端系统上的网络应用。然而,网络站点可以仍然在暂时网络应用中执行和提供访问与可在已安装的网络应用中执行的相同的功能。例如,网络站点可以修改暂时网络应用的独立跳转列表,设置和清除覆盖图标等。可替换地或另外,暂时网络应用可以支持与已安装网络应用相同的行为,例如,如上面描述的,提供从暂时网络应用内打开的独立标签或窗口集
口 ο图36示出了描述根据一个或多个实施例的方法中的步骤的流程图。所述方法可以结合任意合适的硬件、软件、固件或其组合来执行。在至少某些实施例中,方法的各方面可以由例如图I中的客户端设备上适当配置的网络浏览器和/或软件模块实现。步骤3600接收对网络站点的选择,其中,网络应用可以从该网络站点获取到。这可以以任意合适的方式完成,例如通过对标签式网络浏览器上的标签的选择,通过下拉菜 单等。当接收到对网络站点的选择时,步骤3602接收创建网络应用作为客户端设备上临时网络应用的输入。在一个或多个实施例中,这可以包括接收消息或调用,所述消息或调用包含可以用于生成网络应用的请求或其它信息。在其它实施例中,这可以包括接收由用户拖放关联于网络站点的某个标记生成的输入。步骤3604创建与所选网络站点关联的暂时网络应用。在某些实施例中,创建暂时网络应用生成网络应用文件和/或过程而不在客户端的桌面或开始菜单上将其或任意关联的标记集成。例如,关联文件可以被保存在临时文件位置中,所述临时文件位置与集成的网络应用文件被放置的位置不同。另外,在至少某些实施例中,暂时网络应用的创建可以包括将网络站点的状态从浏览器传输到暂时网络应用。图37示出了描述根据一个或多个实施例的方法中的步骤的流程图。所述方法可以结合任意合适的硬件、软件、固件或其组合来实现。在至少某些实施例中,方法的各方面可以由例如图I中的合适配置的网络浏览器和/或软件模块来实现。步骤3700接收关闭暂时网络应用的输入。该步骤可以以任意合适的方式执行。例如,在一个实施例中,这可以包括接收来自用户选择打开的暂时网络应用上的关闭按钮的输入。在另一实施例中,这可以包括接收基于用户选择暂时网络应用下拉菜单上的关闭选项的输入。当接收到用于关闭暂时网络应用的输入时,步骤3702关闭暂时网络应用。关闭暂时网络应用可以包括删除或移除暂时网络应用的关联文件和过程。由此,当关闭暂时网络应用时,在没有如上面描述那样再次访问该暂时网络应用或如下面描述那样将该暂时网络应用安装为非暂时网络应用的情况下,用户不再可访问该暂时网络应用的功能。已描述了暂时网络应用的创建和删除,现在考虑根据一个或多个实施例暂时网络应用可以如何被转换为固定的或安装的网络应用。将暂时网络应用转换为安装的网络应用
在一个或多个实施例中,暂时网络应用可以被转换为安装的或集成的网络应用以允许在网络应用已被关闭之后进行持续访问。一旦被转换,暂时网络应用可以被看作非暂时网络应用。图38示出了包括跳转列表的暂时网络应用。任务栏3800示出了客户端设备上打开着并且正运行着的多个程序。暂时网络应用3810是源自程序3840的网络应用。暂时网络应用3810关联着跳转列表3820。如在安装的或集成的网络应用的情况下一样,跳转列表3820具有关联于安装的网络应用的全部可能的功能。另外,跳转列表3820包含命名为“将该程序固定到任务栏”的项3830。选择该选项将网络应用固定到客户端的任务栏,由此,如上面描述的那样将该网络应用和关联的用户接口手段安装在客户端的桌面上。这使得现在的非暂时网络应用能够从桌面被重新启动。然而,应当认识到和理解,在不脱离所要保护的主题的精神和范围的情况下,可以使用任意合适的技术将暂时网络应用转换为非暂时网络应用。例如,在某些实施例中,暂时网络应用可以被添加到客户端桌面的开始菜单以便集成和安装网络应用。在另一实施例中,暂时网络应用可以具有下拉菜单,该下拉菜单具有用于发起安装过程的选项。当然,可以使用多种方式将暂时网络应用转换为非暂时网络应用。_2] 网络应用超级主页按钮
当与网络应用进行交互时,用户可能导航到除与关联于网络应用的网络站点直接关联的域之外的域。例如,用户可以发起电子邮件网络应用,并且通过跟随外部链接到达例如新闻、购物或娱乐站点的另一站点。在一个或多个实施例中,作为用户接口体验的一部分提供网络应用主页按钮。网·络应用主页按钮用于几个目的。第一,网络应用主页按钮指示特定网络应用模式浏览器(也称为“站点模式浏览器”)实例的目的是用于关联的网络应用。网络应用主页按钮可以使用品牌化(branding)和其它可视化手段来传播该信息。第二,网络应用主页按钮使用户能够通过简单地在网络应用主页按钮上进行点击以访问起始URL而快速和容易地开始回到其网络应用体验的起始。这减轻了为访问关联站点的起始URL而必须关闭并重启特定网络应用的负担。在至少某些实施例中,默认地,从用户从其在任务栏上拖放收藏图标的页面探知关联于起始URL的值。可替换地,网络开发人员可以将描述起始URL的HTML标签定义为其页面的一部分。这允许其定义与其当前正查看的页面不同的可替换起始URL。作为示例,考虑图39。此处,网络应用模式浏览器3900包括地址栏3902,其中,网络站点的URL出现在该地址栏中。另外,网络应用主页按钮3904出现在后退和前进导航按钮附近。当用户导航到与网络应用关联的网络站点之外的域时,其可以在任意时间简单地在网络应用主页按钮3904上进行点击以导航到如网络应用文件中描述的网络站点的起始URL。进一步地,在至少某些实施例中,并且为了向用户传递导航的后退和前进按钮在网络应用而不是默认浏览器中的上下文,该导航的后退和前进按钮可以通过经由网络应用主页按钮利用或提取站点品牌的主要颜色来呈现网络站点的身份。另外,可以使用HTML标签来使网络站点能够指定这些按钮的颜色以作为网络站点的HTML页面的一部分。图40是描述根据一个或多个实施例的方法中的步骤的流程图。所述方法可以结合任意合适的硬件、软件、固件或其组合实现。在至少某些实施例中,所述方法可以由例如上面描述的那样站点模式浏览器实现。步骤4000将站点模式浏览器导航到与安装在客户端设备上的网络应用关联的网络站点起始URL。该步骤可以以任意合适的方式执行,上面提供了其示例。步骤4002导航到不同的网络页面。该网络页面可以或可以不与关联于起始URL的网络站点关联。步骤4004接收对网络应用主页按钮的选择。响应于接收到对网络应用主页按钮的选择,步骤4006将站点模式浏览器导航到网络站点起始URL。示例系统图41示出了可以用于实现上面描述的各种实施例的示例性计算设备4100。计算设备4100可以例如是图I的计算设备102或任意其它合适的计算设备。计算设备4100包括一个或多个处理器或处理单元4102、一个或多个存储器和/或存储部件4104、一个或多个输入/输出(I/O)设备4106和允许各种部件和设备相互进行通信的总线4108。总线4108代表任意几种类型的总线结构中的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用任意各种总线体系结构的处理器或局部总线。总线4108可以包括有线和/或无线总线。存储器/存储部件4104代表一个或多个计算机存储介质。部件4104可以包括易失性介质(例如随机访问存储器(RAM))和/或非易失性介质(例如只读存储器(ROM)、闪存、光盘、磁盘等)。部件4104可以包括固定介质(例如RAM、R0M、固定硬盘驱动器等)以及可移除介质(例如闪存驱动器、可移除硬盘驱动器、光盘等)。
一个或多个输入/输出设备4106允许用户向计算设备4100输入命令和信息,并且还允许信息被呈现给用户和/或其它部件或设备。输入设备的示例包括键盘、光标控制设备(例如鼠标)、麦克风、扫描仪等。输出设备的示例包括显示设备(例如监视器或投影仪)、扬声器、打印机、网卡等。在软件或程序模块的一般上下文中,在本文中可以描述各种技术。大体上,软件包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。这些模块和技术的实现可以被存储在某种形式的计算机可读介质中或通过其被发送。计算机可读介质可以是可被计算设备访问的任意可用的媒介或介质。作为示例并且不作为限制,计算机可读介质可以包括“计算机可读存储介质”。“计算机可读存储介质”包括以用于存储例如计算机可读指令、数据结构、程序模块或其它数据的信息的任意方法或技术实现的易失性和非易失性、可移除和非可移除介质。计算机可读存储介质包括但不限于RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁盒、磁带、磁盘存储或其它磁性存储设备、或任意其它可用于存储期望的信息且可被计算机访问的媒介。
各种实施例提供允许终端用户将网络应用和网络站点安装到其桌面上的机制。根据一个或多个实施例,客户端代码可以用于允许与网络站点关联的开发人员定义与用户交互关联的边界,并且使那些边界被运行时引擎施行。在至少某些实施例中,开发人员可以通过JavaScript代码提供用于开始菜单快捷键创建、导航和所谓的跳转列表集成以及各种其它功能的各种配置。尽管已用特定于结构化特征和/或方法行为的语言描述了主题,但应当理解,在所附权利要求中定义的主题不必限于上面描述的特定特征或行为。相反,上面描述的特定特征和行为作为实现权利要求的示例形式被公开。
权利要求
1.一种计算机实现的方法,其包括 在客户端设备处接收对网络站点集成特征的选择; 代表关联的网络站点发起网络应用安装过程,其中,发起所述网络应用安装过程导致网络应用文件在所述客户端设备上被创建;以及 用网络应用内容填充所述网络应用文件,所述网络应用内容包括列表,所述列表构成被配置呈现给用户的一组相关任务或内容,其中,所述列表定义可以被所述网络站点动态更新的一个或多个动态元素。
2.根据权利要求I的计算机实现的方法,其中,使用JavaScript来执行所述填充,其中,JavaScript定义出现在所述列表中的一个或多个静态元素。
3.根据权利要求I的计算机实现的方法,其中,一个或多个动态元素包括动态地为用户暴露可识别标记的设置。
4.根据权利要求I的计算机实现的方法,其中,一个或多个动态元素包括动态地为用户暴露可识别标记的设置,以及其中,所述可识别标记包括视觉可识别标记。
5.根据权利要求I的计算机实现的方法,其中,所述动态元素被配置为当所述网络应用正在所述客户端设备上运行时被更新。
6.根据权利要求I的计算机实现的方法,其中,至少某些动态元素被配置为经由任务栏通知被更新。
7.根据权利要求I的计算机实现的方法,其中,至少某些动态元素被配置为经由任务栏通知被更新,以及其中,至少一个任务栏通知包括出现在与所述网络应用关联的图标上的可呈现覆盖图标。
8.根据权利要求I的计算机实现的方法,其中,所述动态元素的至少一个包括可响应于用户动作呈现的预览窗口。
9.一个或多个包含计算机可读指令的计算机可读存储介质,其中,所述计算机可读指令当被执行时实现一种方法,所述方法包括 从网络站点接收与动态跳转列表项关联的通知,其中,所述动态跳转列表项与由所述网络站点定义的跳转列表相关联,并且与被集成在客户端设备上的网络应用相关联; 响应于接收到所述通知,为用户提供可识别的通知。
10.根据权利要求9的一个或多个计算机可读存储介质,其中,至少部分上经由JavaScript来执行所述接收。
11.根据权利要求9的一个或多个计算机可读存储介质,其中,所述跳转列表包括一个或多个静态元素。
12.根据权利要求9的一个或多个计算机可读存储介质,其中,所述跳转列表于在所述客户端设备上创建并且与所述网络站点关联的网络应用文件中被定义,以及其中,所述网络应用文件包括起始URL、由所述网络站点指定的一个或多个导航域、网络应用标题和收藏图标。
13.根据权利要求9的一个或多个计算机可读存储介质,其中,所述通知起这样的作用导致任务栏覆盖图标在与所述网络应用相关联的任务栏图标上被渲染。
14.根据权利要求9的一个或多个计算机可读存储介质,其中,所述跳转列表进一步定义采用可响应于用户动作呈现的预览窗口的形式的动态跳转列表项。
15.—种计算机实现的方法,其包括 从网络站点接收与动态跳转列表项关联的通知,其中,所述动态跳转列表项与由所述网络站点定义的跳转列表相关联,并且与被集成在客户端设备上的网络应用相关联;以及响应于接收到所述通知,为用户提供可识别的通知,其中,至少部分上通过导致覆盖图标被可识别地渲染给用户来执行所述提供。
全文摘要
各种实施例提供一种允许终端用户将网络应用和网络站点安装到他们的桌面上的机制。根据一个或多个实施例,可以使用客户端代码来允许与网络站点关联的开发人员定义与用户交互关联的边界,并且使那些边界被运行时引擎施行。在至少某些实施例中,开发人员可以通过JavaScript代码和/或HTML标记提供用于开始菜单快捷键创建、导航和所谓的跳转列表集成的各种配置。
文档编号G06F9/445GK102918502SQ201180028811
公开日2013年2月6日 申请日期2011年5月31日 优先权日2010年6月11日
发明者I.希勒里奥, M.B.帕顿, P.H.乐, J.M.波西, K.M.杨拉, C.杨, A.H.马列克, B.A.摩根, J.E.戴维斯, M.贾伯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1