列表集成的制作方法

文档序号:6360863阅读:184来源:国知局
专利名称:列表集成的制作方法
列表集成
背景技术
近来,产业开始聚焦于将web应用或网站与用户的计算机桌面(desktop)环境或“桌面”进行集成的理 念。然而,存在有与这样做相关联的挑战。例如,今天,网站很难为了桌面集成起见而定义它们的站点的边界(boundary)。因此,留待最终用户通过他们自己开发的客户端脚本来定义边界。这可能是成问题的,因为最终用户可能不一定知道某个特定的网站是如何构建的。例如,最终用户可能不一定知道所有的链接、在web属性之间的关系、或由网站利用来给用户提供功能性的其它微妙之处。因此,最终用户的脚本可能没有察觉到这些链接或微妙之处,因此可能导致不希望的或间断的用户体验。附加地,用户今天面临所谓的双引导(boot)问题。具体而言,用户被迫弓丨导他们的个人计算机、起动他们的浏览器、最后启动他们希望在其中工作的特定的web应用。这个问题由于以下事实而复杂化浏览器可能给用户提供太多的分心事,诸如在浏览器的chrome中出现的那些;并且不允许用户简单地专注于与web应用相关联的手边的特定任务。

发明内容
本概要被提供来以简化的形式介绍概念的选择,这些概念将在下面的详细说明中被进一步描述。本概要既不打算识别所要求保护的主题的关键特征或必要特征,也不打算被使用来限制所要求保护的主题的范围。各种实施例提供了允许最终用户将web应用和网站安装到诸如客户设备桌面那样的客户设备上的机制。按照一个或多个实施例,客户端代码可被利用来允许与网站相关联的开发者定义与用户交互相关联的边界,并使得那些边界通过运行时引擎实施。在至少一些实施例中,开发者可以通过JavaScript代码提供用于创建开始菜单快捷方式、导航和所谓的跳转列表集成的各种配置,以及许多其它特征。


相同的标号贯穿附图被使用来指同样的特征。图I图示了一个操作环境,其中可以按照一个或多个实施例来利用这里描述的各种原理。图2图示按照一个或多个实施例的web应用窗口。图3图示按照一个或多个实施例的JavaScript API。图4是描述按照一个或多个实施例的安装方法中的步骤的流程图。图5是描述按照一个或多个实施例的web应用交互方法中的步骤的流程图。图6图示按照一个或多个实施例的客户桌面的一部分。图7图示按照一个或多个实施例的JavaScript API。图8图示按照一个或多个实施例的、在网站与定制的跳转列表之间的动态交互。图9图示按照一个或多个实施例的客户桌面的一部分。图10图示按照一个或多个实施例的客户桌面的一部分。
图11是描述按照一个或多个实施例的安装方法中的步骤的流程图。图12是描述按照一个或多个实施例的方法的步骤的流程图。图13是描述按照一个或多个实施例的方法的步骤的流程图。图14图示按照一个或多个实施例的客户桌面。图15概略地图示按照一个或多个实施例的拖放操作。图16是描述按照一个或多个实施例的安装方法中的步骤的流程图。图17图示按照一个或多个实施例的客户桌面。图18是描述按照一个或多个实施例的安装方法中的步骤的流程图。图19图示按照一个或多个实施例的客户桌面。 图20是描述按照一个或多个实施例的方法中的步骤的流程图。图21图示按照一个或多个实施例的客户桌面。图22图示按照一个或多个实施例的、在显示网站的浏览器、证书库(credentialsstore)、相关联的web应用和web应用证书库之间的关系。图23是描述按照一个或多个实施例的方法中的步骤的流程图。图24是描述按照一个或多个实施例的方法中的步骤的流程图。图25图示按照一个或多个实施例的多个web应用实例的例子。图26图示按照一个或多个实施例的客户桌面。图27是描述按照一个或多个实施例的方法中的步骤的流程图。图28是描述按照一个或多个实施例的方法中的步骤的流程图。图29图示按照一个或多个实施例的客户桌面。图30图示按照一个或多个实施例的客户桌面。图31图示按照一个或多个实施例的客户桌面。图32是描述按照一个或多个实施例的方法中的步骤的流程图。图33是描述按照一个或多个实施例的方法中的步骤的流程图。图34是描述按照一个或多个实施例的方法中的步骤的流程图。图35图示按照一个或多个实施例的、在web应用与浏览器之间的关系。图36是描述按照一个或多个实施例的方法中的步骤的流程图。图37是描述按照一个或多个实施例的方法中的步骤的流程图。图38图示按照一个或多个实施例的暂时的web应用的例子。图39图示按照一个或多个实施例的站点模式浏览器。图40是描述按照一个或多个实施例的方法中的步骤的流程图。图41图示可以被利用来实施一个或多个实施例的示例性系统。
具体实施例方式 各种实施例提供了允许最终用户将web应用和网站安装到诸如客户设备桌面那样的客户设备上的机制。按照一个或多个实施例,客户端代码可被利用来允许与网站相关联的开发者定义与用户交互相关联的边界,并使得那些边界通过运行时引擎来被强制遵守(enforce)。在至少一些实施例中,开发者可以通过JavaScript代码提供用于创建开始菜单快捷方式、导航和所谓的跳转列表集成的各种配置,以及其它特征。边界可被看作为涉及到如何将功能性暴露给最终用户的开发者定义的体验。边界与网站域相关联,网站域诸如是顶级域和可以与单独的应用相关联的子域,或是在某个域上宿有的网站的子组。因此,边界可以通过被利用来使得特定web应用工作的一组域、子域、文件夹、子站、协议、主机、路径等等来定义。在一个或多个实施例中,网站可以决定参加上面和下面描述的功能性。在这种情形下,开发者可以提供代码,所述代码在一些实例中以JavaScript的形式表达,它定义了用户对他们的网站的体验的边界。替换地或附加地,未决定参加上面和下面描述的功能性的网站可以使默认的体验被提供给他们。在随后的讨论中,提供了标题为“操作环境”的段落,其描述了其中可以利用一个或多个实施例的一种环境。随后,标题为“集成基础设施”的段落描述了按照一个或多个实施例、使得web应用能够被集成到客户设备上的基础设施。接着,标题为“跳转列表集成”的·段落描述了按照一个或多个实施例、所谓的跳转列表可以被如何集成。接着,标题为“任务栏钉住(pinning)”的段落描述了按照一个或多个实施例、web应用可以如何被钉在任务栏上。之后,标题为“关联证书和登录会话”的段落描述了按照一个或多个实施例、证书和登录会话可以如何被关联。接着,标题为“用相关联的证书创建和启动web应用”的段落描述了按照一个或多个实施例、web应用可以如何被创建和启动。之后,标题为“web应用任务会话”的段落描述了按照一个或多个实施例的任务会话的理念。接着,标题为“在web应用与浏览器之间的转变”的段落描述了按照一个或多个实施例、转变在web应用与浏览器之间可如何发生。之后,标题为“从浏览器创建暂时的web应用”的段落描述了按照一个或多个实施例、可如何从浏览器创建暂时的web应用。接着,标题为“将暂时的web应用转换成安装的web应用”的段落描述了按照一个或多个实施例、暂时的web应用可如何被转换成安装的web应用。之后,标题为“web应用超级主按钮(home button)”的段落描述了按照一个或多个实施例、与web应用相关联的主按钮。最后,标题为“示例性系统”的段落描述了可被利用来实施一个或多个实施例的示例性系统。 现在考虑其中可以实施一个或多个实施例的示例性操作环境。操作环境
图I图示按照一个或多个实施例的操作环境,总的以100表示。环境100包括计算设备102,其具有一个或多个处理器104、一个或多个计算机可读存储媒体106和驻留在计算机可读存储媒体上并且可以由处理器执行的一个或多个应用108。计算机可读存储媒体可包括(作为例子而不是限制)典型地与计算设备相关联的所有形式的易失性和非易失性存储器和/或存储媒体。这样的媒体可包括R0M、RAM、快闪存储器、硬盘、可移除媒体等等。计算设备的一个具体的例子在下面的图41中被显示和描述。附加地,计算设备102包括web浏览器110形式的软件应用。可以使用任何适当的web浏览器,其例子是从本文档的受让人以及其它方可得到的。附加地,计算机可读存储媒体106可包括如上面和下面描述的那样操作的web应用模式浏览器111。web应用模式浏览器111用作为运行时引擎,其分别接收来自网站的API调用和向网站做出API调用、监督web应用安装过程、强制遵守边界以及使能如上面和下面描述的功能性。在操作时,web应用模式浏览器是完全浏览器的削减版本,许多正常的浏览器功能性被关闭。在一些实例中,web应用模式浏览器可被认为是不包括许多常有的浏览器控制的“无chrome”浏览器。然而,某些命令可以通过微型控制栏被暴露。web应用模式浏览器因此移除了许多对于用户而言的分心事,并许可直接的、网站定义的用户体验,其中网站可以控制用户如何与它们的web应用交互。在操作时,web应用模式浏览器可被认为在逻辑上驻留在网站与客户设备的操作系统之间。因此,web应用模式浏览器接收来自网站的调用,并可以作为响应做出操作系统调用以影响这里描述的功能性。同样地,web应用模式浏览器可以接收来自操作系统的调用,其将影响网站的功能性。例如,操作系统暴露使得能与桌面的任务栏交互的API。web应用模式浏览器可以接收来自网站的调用,并可以作为响应做出API调用,所述调用使能任务栏功能性,正如将在下面变得清楚的。web应用模式浏览器111可被实施为独立的部件。替换地或附加地,web应用模式浏览器111可被实施为应用108和/或浏览器110的一部分。附加地,环境100包括诸如互联网那样的网络112和可以从其接收内容和向其发送内容的一个或多个网站114。这样的内容可包括诸如web应用那样的内容,其被集成到客户桌面上,或以另外的方式通过客户设备可使用,正如上面和下面描述的。计算设备102可被体现为任何适当的计算设备,诸如(作为例子而不是限制)台式计算机、便携式计算机、诸如个人数字助理(PDA)这样的手持计算机、蜂窝电话等等。在描述了示例性操作环境后,现在考虑允许web应用被集成到客户设备的基础设施的讨论。集成基础设施
按照一个或多个实施例,网站可以决定参加域导航,域导航被作为更普通的“站点模式”体验的一部分来提供。域导航使网站能够定制在用户访问特定域里面和外面的链接时它们现有的网站的行为。当访问开发者规定的边界里面的链接时,内容可以在web应用窗口内被呈递和消费,该web应用窗口由web应用模式浏览器作为相关联的web应用的一部分被呈递。当访问开发者规定的边界外面的链接时,相关联的内容可以在默认的浏览器内被呈递和消费,该默认的浏览器是在web应用模式浏览器的外面的。这允许网站定义什么域应当作为网站的延伸对待,而哪些域不应当作为网站的延伸对待。在一个或多个实施例中,导航域可以由web开发者定义,并且可以识别这样的链接,即它们的内容由web应用模式浏览器作为集成的网站的一部分被显示或者在web应用模式浏览器的外面在默认浏览器中被显示。附加地,可以定义默认域参数,它们被使用来把许多的web应用页面关联在一起。作为例子,考虑下面的内嵌(in-line)域页面定义
木contoso. crm. dynamics. com\木;木.microsoft. com\木;
这个域页面定义将允许正好在下面的形式的URI在相同的桌面web应用窗口中被显

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