具体实施方式
现在参照附图来描述要求保护的主题,其中从始至终相同的参考数字被用来指代相同的元件。在以下描述中,出于解释的目的,阐述了诸多具体细节以提供对要求保护的主题的透彻理解。然而,明显的是没有这些具体细节也可以实施要求保护的主题。在其他情况下,以方框图形式示出了结构和设备以便于描述要求保护的主题。
个人计算机、PDA、平板PC、智能电话和各种其他技术为用户提供对丰富的web内容的访问。例如,用户可以使用平板PC通过社交网络网站玩视频游戏。在另一个例子中,用户可在智能电话上在地图中描绘驾驶方向。由于作为搜索、探索(explore)、消费和共享内容的手段的web的日益普及,开发者通常选择基于web的创作平台用于开发新内容。例如,百科全书应用通常被开发为通过丰富客户端应用(例如基于视窗的应用)来执行,其通过包括多个CD或DVD(例如10张CD的组)的软件包来分发。然而,现今百科全书通常是基于web的内容,诸如交互web页面和web应用,这是因为相对于购买桌面应用、安装桌面应用以及在桌面应用内消费内容,大量的用户可容易地找到并消费web内容。
在用户界面内提供web内容可以是有益的,这是因为大量新内容被开发为web内容,它们可以在具有提供比web界面更稳健和更好的交互体验的能力的用户界面内被提供。可以意识到的是用户界面可被解释为非基于web的应用,并且可以被称为丰富客户端应用、用户界面、非基于web的应用和/或桌面应用,这些都不同于专用的web界面。一种当前技术试图通过向用户界面提供允许用户界面在用户界面的表面上涂绘一些片段的web页面的“刷子”而在用户界面内提供web内容。不幸的是,涂绘的表面无法交互(例如,当用户选择超链接时,接着不具有用新颜色更新超链接使以便显示发生了选择的功能)。另一种当前技术提供有限交互的HTML再现的表面。然而,再现的表面被限制在HTML窗口内。
相应地,此处提供了用于在用户界面内再现web内容的一个或多个系统和/或技术。具体而言,一个或多个再现组件可被配置为以相应的格式再现web内容。例如,第一再现组件可被配置为生成HTML
web内容,第二再现组件可被配置为生成DirectX®再现内容等。多个再现组件可被配置为在表面内以通用格式再现web内容。组成组件可在多个再现组件之中传递表面以“收集”在表面内再现的web内容。组成组件可被配置向用户界面提供在表面内再现的内容。在一个例子中,可向用户界面提供第一再现的内容或其一部分。在另一个例子中,可向用户界面提供由第一再现组件再现的第一再现的web内容和由第二再现组件再现的第二再现的web内容的组合。输入组件可被配置为基于与用户界面内的再现的web内容的用户交互而调用再现组件以提供再现的web内容的更新版本。
图1中的示例方法100示出了在用户界面内再现web内容的一个实施方式。该方法开始于步骤102。在步骤104,可调用第一再现组件以生成在表面内的第一再现的web内容。例如,诸如web页面的隐藏实例的HTML再现器可在表面内的位置以通用格式再现超链接的图像。在步骤106,可向用户界面(例如非基于web的应用)提供来自表面内的第一再现的web内容。例如,可向多媒体桌面应用提供以蓝颜色再现的超链接的图像,多媒体桌面应用可以以蓝色显示再现的超链接的图像(例如在立方体对象内)。多媒体桌面应用可在多媒体桌面应用的右下角的立方体对象内显示超链接。
在步骤108,可接收在用户界面内与第一再现的web内容的交互。例如,用户可使用光标来点击(调用)立方体对象内的超链接。在这个例子中,交互可包括点击事件、在多媒体桌面应用内的超链接的位置、鼠标位置和/或其他信息。在步骤110,可调用第一再现组件来基于交互和/或一些其他类型的通知而在表面内生成第一再现的web内容的更新版本。例如,可向HTML再现器提供交互数据(例如点击事件、超链接位置等)。HTML再现器可生成超链接图像的更新版本(例如,更新的图像可包括以不同颜色显示的超链接(例如紫色)以指示用户调用了该超链接)。可以意识到的是,第一再现组件可以例如基于一些预定标准、用户设置等做出决定不生成第一再现的web内容的更新版本。
在步骤112,可向用户界面提供在表面内的更新的第一再现的web内容。例如,可向多媒体桌面应用提供更新的紫色的超链接的再现的图像,多媒体桌面应用可以显示更新的紫色超链接的更新的再现的图像。多媒体桌面应用可在立方体对象内显示更新的紫色超链接以代替蓝色超链接的图像,从而指示用户调用了该超链接。
可以意识到的是,可以使用一个以上的再现组件以在表面内生成通用格式的再现的web内容。在一个例子中,可调用第二再现组件(例如DirectX®再现组件)以在表面内生成第二再现的web内容。例如,第二再现组件可在表面内生成包括超链接的基于web的文本框。在一个例子中,可以向用户界面提供超链接或文本框。在另一个例子中,超链接和文本框可被组合为组合的再现的web内容,其可以被提供给用户界面。通过这样的方式,可以以兼容的格式向用户界面提供由一个或多个再现技术再现的交互web内容。该方法结束于步骤114。
图2中的示例方法200示出了在用户界面内再现web内容的一个实施方式。该方法开始于步骤202。在步骤204,可以调用第一再现组件以在表面内生成第一再现的web内容。第一再现的web内容可包括web内容的图像。例如,HTML再现器可在表面内在特定位置生成基于web的表格的图像。在步骤206,可向用户界面提供来自表面内的第一再现的web内容的一部分。例如,基于web的表格的图像可包括15行。然而,可向用户界面提供图像的一部分,例如基于web的表格的前十行。
在步骤208,可接收与用户界面内的第一再现的web内容的一部分的交互。交互可包括鼠标位置、键盘输入、触摸检测等和/或在用户界面内的第一再现的web内容的一部分的位置。例如,用户可在用户界面内显示的基于web的表格的单元(例如单元2、3)内点击。可以接收鼠标点击事件、鼠标位置(例如指示点击的单元的鼠标的xy坐标)和/或在用户界面内显示的图像的一部分(例如基于web的表格的前十行)的位置。
在步骤210,可调用第一再现组件以基于该交互在表面内生成第一再现的web内容的更新版本。第一再现的web内容的更新的版本可包括web内容的更新图像。例如,HTML再现器可生成基于web的表格的更新的版本,使得在点击的单元内描绘光标。在步骤212,可以向用户界面提供表面内的更新的第一再现的web内容的至少一部分。在一个例子中,更新的图像的一部分可包括可以含有更新的单元的更新的基于web的表格的前十行。在另一个例子中,可以仅向用户界面提供更新的单元的图像。通过这样的方式,用户界面可呈现更新的基于web的表格的前十行,以使得在点击的单元中描绘光标。该方法结束于步骤214。
图3图示了被配置为在用户界面314内再现web内容的系统300的一个例子。系统300可包括第一再现组件304、第二再现组件306和/或其他再现组件(例如第N再现组件308)。可以意识到的是,系统300可包括单个再现组件,诸如第一再现组件304。系统300可包括组成组件302和/或输入组件318。用户界面314可以是诸如桌面汽车研究应用的非基于web的应用。
组成组件302可被配置为发送表面310到诸如第一再现组件304(例如包括web页面的隐藏实例的HTML再现器)的再现组件。第一再现组件304可被配置为从组成组件302接收表面310。第一再现组件304可被配置为在表面310内生成第一再现的web内容。例如,第一再现组件302可以以通用格式再现汽车和人物的图像。第一再现组件302可发送表面310到组成组件302,组成组件302可以被配置为从第一再现组件304接收包括第一再现的web内容(例如汽车和人物的再现的图像)的表面310。组成组件302可被配置为向用户界面314提供诸如第一再现的web内容的再现的web内容312。
可以意识到的是,组成组件302可被配置为调用多个再现组件以在表面310内生成再现的web内容。可以意识到的是,可利用一个或多个表面来管理由多个再现组件生成的再现的web内容。在一个例子中,第二再现组件306(例如DirectX®再现器)可被配置为在表面310内再现第二再现的web内容。例如,第二再现组件306可在表面310内生成虚线框的再现的图像。通过这样的方式,组成组件302可向使用一个或多个表面的用户界面314提供来自多个再现组件的再现的web内容312。例如,组成组件302可向用户界面314选择性地提供第一或第二再现的web内容。在另一个例子中,组成组件302可将第一和第二再现的web内容组合为组合的再现的web内容,并向用户界面314提供组合的再现的web内容。可以意识到的是,用户界面314、输入组件318和/或组成组件302可被配置为请求再现组件在表面310上生成再现的web内容。
输入组件318可被配置为调用320诸如第一再现组件304的再现组件以基于与用户界面内的再现的web内容的交互316在表面310内生成再现的web内容的更新的版本。例如,用户界面314可显示包括汽车和人物的图像的第一再现的web内容。用户可将鼠标移到汽车和人物的图像上(mouseover),输入组件318可将其检测为交互316。输入组件318可向第一再现组件304提供鼠标在上(mouseover)事件、鼠标位置和/或在用户界面314内的第一再现的web内容的位置。第一再现组件可在表面310内生成第一再现的web内容的更新的版本(例如以黄色高亮显示的描述汽车和人物的图像),组成组件302可将其提供给用户界面314。通过这样的方式,可基于用户交互而更新再现的web内容并将其提供给用户界面314,因此允许在用户界面314内的交互web内容。
可以意识到的是,组成组件302可被配置为将表面内的再现的web内容“分解”为多个部分。例如,第一再现组件可在表面内再现包括汽车和人物的web内容。组成组件302可被配置为将汽车和人物拆分为单独的部分。通过这样的方式,可向用户界面提供汽车,以使得用户界面可以在第一位置显示汽车。可向用户界面提供人物,以使得用户界面可以在第二位置显示人物,其中第一和第二位置不同于这些元素在被拆分之前各自的位置。
图4是调用多个再现组件以在表面404内生成再现的web内容的组成组件402的一个例子400的示意图。组成组件402可发送表面404到第一再现组件406。第一再现组件可在表面408内生成汽车和人物的第一再现的web内容。组成组件402可接收具有第一再现的web内容的表面408。
组成组件402可发送包括第一再现的web内容的表面410到第二再现组件412。第二再现组件412可在表面414内生成虚线框的第二再现的web内容。组成组件402可接收具有第一再现的web内容和第二再现的web内容的表面414。
组成组件402可发送具有第一再现的web内容和第二再现的web内容的表面416到第N再现组件418。第N再现组件418可在表面420内生成汽车超链接的第N再现的web内容。组成组件402可接收具有第一再现的web内容、第二再现的web内容和第N再现的web内容的表面420。可以意识到的是,在例子400中提及的多种表面(404、408、410、414、416和/或420)可以是相同的或不同的表面。通过这样的方式,组成组件402可在来自多种再现组件的一个或多个表面中收集再现的web内容。
图5是提供组合的再现的web内容512到用户界面514的一个例子500的示意图。组成组件502可以已经收集了表面504内的web内容(例如图像)。例如,表面504可包括汽车和人物的第一再现的web内容506、虚线框的第二再现的web内容508和/或汽车超链接的第三再现的web内容510。组成组件502可将第一、第二和第三web内容组合为包括汽车、人物、虚线框和汽车超链接的图像的组合的再现的web内容512。组成组件502可向用户界面514提供组合的再现的web内容512。用户界面514可在显示的用户界面514内显示组合的再现的web内容512内的图像。例如,可在虚线框图像518内显示汽车和人物图像516,同时在用户界面514内的下方显示汽车超链接图像520。
图6是向用户界面614提供组合的再现的web内容612的一个例子600的示意图。组成组件602可以已收集表面604内的web内容(例如图像)。例如,表面604可包括汽车和人物的第一再现的web内容606、虚线框的第二再现的web内容608和/或汽车超链接的第三再现的web内容610。组成组件602可将第一和第三web内容(而没有第二web内容)组合为包括汽车、人物和虚线框的图像的组合的再现的web内容612。组成组件602可向用户界面614提供组合的再现的web内容612。用户界面614可在显示的用户界面614内显示组合的再现的web内容612内的图像。例如,可在用户界面614内的汽车超链接图像620上面显示汽车和人物图像616。
图7是向用户界面714提供第一再现的web内容712的一个例子700的示意图。组成组件702可以已收集表面704内的web内容(例如图像)。例如,表面704可包括汽车和人物的第一再现的web内容706、虚线框的第二再现的web内容708和/或汽车超链接的第三再现的web内容710。组成组件702可向用户界面714提供包括汽车和人物的图像的第一再现的web内容712。用户界面714可在显示的用户界面714内显示第一再现的web内容712内的汽车和人物图像716。
图8是向用户界面812提供第一再现的web内容的第一和第二部分的一个例子800的示意图。组成组件802可以已收集表面804内的web内容(例如图像)。例如,表面804可包括汽车808和人物806的第一再现的web内容以及其他再现的web内容。组成组件802可向用户界面812提供包括第一再现的web内容的汽车808部分但是不包括人物806部分的图像的第一再现的web内容的第一部分810。用户界面812可在显示的用户界面812内的第一位置显示第一再现的web内容的第一部分810内的汽车图像814。此外,组成组件802可向用户界面812提供包括第一再现的web内容的人物806部分但是不包括汽车808部分的图像的第一再现的web内容的第二部分816。用户界面可在第二位置(例如在汽车上面,而非一开始描述的在汽车旁边/后面)显示第一再现的web内容的第二部分810内的人物图像818。
将意识到的是,例如还可在用户界面812中显示诸如超链接的其他图像,其中仅在用户界面中显示了其他内容的一部分。例如,在不显示人物806部分时可以与汽车808部分一起显示超链接图像。
图9是调用第一再现组件914以在表面内生成第一再现的web内容的更新的版本916的输入组件910的一个例子900的示意图。用户界面902可显示包括汽车图像的第一再现的web内容904。选择汽车的光标906可调用在第一再现的web内容904上的鼠标点击。输入组件910可检测与第一再现的web内容904的交互908以及位置数据(例如鼠标位置、键盘输入、触觉检测和/或用户界面902内的第一再现的web内容904的位置)。输入组件910可以调用912第一再现组件914以在表面内生成第一再现的web内容的更新的版本916。例如,第一再现组件914可生成包括处于表面内不同方位(例如汽车可被描绘为倾斜向上的位置,好像汽车正开往山上)和/或位置(例如可在再靠右边一些的位置再现更新的汽车的图像,好像汽车向右已开到了山上)的汽车的图像的更新的版本916。
组成组件918可被配置为向用户界面902提供第一再现的web内容的更新的版本920。用户界面902可显示更新的汽车图像922。通过这样的方式,可使用交互(例如用户交互、计时器超时和/或其他事件)来更新再现的web内容。例如,可以一次或多次地顺序更新汽车图像922以描述汽车在用户界面902内的运动。
还有另一个实施方式涉及包括被配置为实现此处提出的一个或多个技术的处理器可执行指令的计算机可读介质。图10中图示了可以通过这些方式设计的示例计算机可读介质,其中实现方式1000包括其上编码了计算机可读数据1014的计算机可读介质1016(例如CD-R、DVD-R或硬盘驱动器的盘片(platter))。计算机可读数据1014进而又包括被配置为根据此处阐述的一种或多种原理而操作的计算机指令集1012。在一个这样的实施方式1000中,处理器可执行计算机指令1012例如可被配置为执行诸如图1的示例方法100和/或图2的示例方法200之类的方法1010。在另一个这样的实施方式中,处理器可执行指令1012例如可被配置为实现诸如图3的示例系统300这样的系统。本领域技术人员可设计被配置为依照此处提出的多种技术而操作的许多这样的计算机可读媒体。
尽管已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解的是所附权利要求中定义的主题并不是必须限制为以上所描述的特定特征或动作。相反,以上所描述的特定特征和动作仅作为实现权利要求的示例形式而公开。
本申请中使用的术语“组件”、“模块”、“系统”、“界面”等一般试图指代计算机相关的实体,或者是硬件、硬件和软件的组合或软件,或者是执行中的软件。例如,组件可以是,但不限于在处理器上运行的进程、处理器、对象、可执行程序、执行线程、程序和/或计算机。作为示例,在控制器上运行的应用以及控制器本身都可以是组件。一个或多个组件可驻留在进程和/或执行线程中,组件可位于一台计算机中和/或分布于两台或更多计算机之间。
此外,要求保护的主题可被实现为使用标准编程和/或工程技术来产生软件、固件、硬件或以上这些的组合从而控制计算以实现所公开的主题的方法、装置和制造产品。此处使用的术语“制造产品”试图包括可从任何计算机可读设备、载体或媒体访问的计算机程序。当然,本领域技术人员将认识到可对该配置作出许多修改而不脱离要求保护的主题的范围和精神。
图11和以下讨论提供了关于合适的计算环境以实现此处阐述的一个或多个规定的实施方式的简要的、一般性的描述。图11的操作环境仅是合适的操作环境的一个示例,其并未试图暗示任何对操作环境的使用或功能的范围的限制。示例计算设备包括但不限于个人计算机、服务器计算机、手持或膝上型设备、移动设备(诸如移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费电子设备、微型计算机、大型计算机、包括以上任何系统和设备的分布式计算环境等。
尽管不是必需的,但是实施方式是在由一个或多个计算设备执行的“计算机可读指令”的一般上下文中描述的。可通过计算机可读媒体来分发计算机可读指令(以下将讨论)。计算机可读指令可被实现为执行特定任务或实现特定抽象数据类型的程序模块,例如函数、对象、应用编程接口(API)、数据结构等。典型地,可根据需要将计算机可读指令的功能组合或分布到多个环境中。
图11图示了包括被配置为实现此处提供的一个或多个实施方式的计算设备1112的系统1110的一个例子。在一种配置中,计算设备1112包括至少一个处理单元1116和存储器1118。根据计算设备的准确配置和类型,存储器1118可以是易失性(例如诸如RAM之类的)、非易失性(例如诸如ROM、闪存等之类的)或这两者的某种组合。该配置在图11中由虚线1114图示。
在其它实施方式中,设备1112可包括附加特征和/或功能。例如,设备1112还可包括附加存储装置(例如可移除的和/或不可移除的),这些附加存储装置包括但不限于:磁存储装置、光存储装置等。这样的附加存储装置在图11中由存储装置1120图示。在一个实施方式中,实现此处提供的一个或多个实施方式的计算机可读指令可以在存储装置1120中。存储装置1120还可存储其他计算机可读指令以实现操作系统、应用程序等。例如,可将计算机可读指令加载到存储器1118中以供处理单元1116执行。
此处使用的术语“计算机可读媒体”包括计算机存储媒体。计算机存储媒体包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除媒体。存储器1118和存储装置1120是计算机存储媒体的例子。计算机存储媒体包括但不限于:RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多用途盘(DVD)或其他光存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储设备、或者可被用来存储期望的信息并可被设备1112访问的任何其他介质。任何这样的计算机存储媒体可以是设备1112的一部分。
设备1112还可包括一个或多个通信连接1126,其允许设备1112与其他设备进行通信。一个或多个通信连接1126可包括但不限于:调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或其他用于将计算设备1112连接到其他计算设备的接口。一个或多个通信连接1126可包括有线连接或无线连接。一个或多个通信接口1126可传输和/或接收通信媒体。
术语“计算机可读媒体”可包括通信媒体。通信媒体一般体现为“调制的数据信号” (诸如载波或其他传输机制)中的计算机可读指令或其他数据,并且通信媒体包括任何信息传递媒体。术语“调制的数据信号”可包括其一个或多个特性被以将信息编码到信号的方式被设置或改变的信号。
设备1112可包括诸如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外照相机、视频输入设备和/或任何其他输入设备的一个或多个输入设备1124。设备1112中还可包括诸如一个或多个显示器、扬声器、打印机和/或任何其他输出设备的一个或多个输出设备1122。一个或多个输入设备1124和输出设备1122可通过有线连接、无线连接或者这两者的任意组合而连接到设备1112。在一个实施方式中,来自另一个计算设备的输入设备和输出设备可被用作计算设备1112的一个或多个输出设备1124或输出设备1122。
可通过诸如总线之类的多种互连方式连接计算设备1112的组件。这样的互连方式包括外围元件互连(PCI)(诸如PCI Express)、通用串行总线(USB)、火线(IEEE 13114)、光学总线结构等。在另一个实施方式中,可通过网络互连计算设备1112的组件。例如,存储器1118可包括位于由网络互连的不同物理位置的多个物理存储器单元。
本领域技术人员将认识到,用来存储计算机可读指令的存储设备可以分布在网络中。例如,可通过网络1128访问的计算设备1130可存储计算机可读指令以实现此处提供的一个或多个实施方式。计算设备1112可访问计算设备1130以及下载部分或全部的计算机可读指令以供执行。可替换地,计算设备1112可根据需要下载部分计算机可读指令,或者可以在计算设备1112中执行一些指令,在计算设备1130中执行一些。
此处提供了多个实施方式的多种不同操作。在一个实施方式中,所描述的一个或多个操作可构建存储在一个或多个计算机可读媒体上的计算机可读指令,如果由计算设备执行这些计算机可读指令,将使得计算设备执行所描述的操作。不应当将描述一些或全部操作的顺序解释为隐含这些操作必须是顺序相关的。本领域技术人员受益于该描述将意识到还可以有可替换的排序。此外,应当理解的是并非所有的操作对于此处提供的每个实施方式都是必须存在的。
此外,单词“示例”在此处被用来意味着充当例子、实例或图示。此处描述为“示例”的任何方面或设计都不必被解释为相对于其他方面或设计具有优点。相反,单词示例的使用试图以明确的方式提出概念。本申请中使用的术语“或”试图意味着包含式的“或”而非排除式的“或”。也就是说,除非以其它方式特别指定或从上下文中明确,“X采用A或B”试图意味任何自然的包含式排列组合。也就是说,如果X采用A;X采用B;或X采用A和B这两者,则任意以上实例都满足“X采用A或B”。另外,本申请和所附权利要求中使用的冠词“一”和“一个”一般可以解释为意指“一个或多个”,除非以其它方式特别指定或从上下文中直接明确为单数形式。
同样的,尽管参照一个或多个实现方式显示和描述了本公开,本领域技术人员基于对本说明书和附图的阅读和理解可作出等同的替换和修改。本公开包括所有这样的修改和替换,并且其仅由以下的权利要求的范围所限制。特别是关于由以上所描述的组件(例如元件、资源等)执行的多种不同功能,除非以其它方式指明,用来描述这些组件的术语试图相应于执行所描述的组件的指定功能的任何组件(也就是功能等同),即使其结构与所公开的结构并不等同,其中所公开的结构在本公开的在此图示的示例实现方式中执行所述功能。另外,虽然仅参照若干实现方式中的一种公开了本公开的特定特征,这样的特征可与其他实现方式中的一个或多个其他特征相组合,这对于任何给定的或特定的应用将是期望的和有益的。此外,对于在详细说明或权利要求中使用术语“包括”、“具有”、“有”、“带有”或以上这些的变体而言,这些术语试图以与术语“包含”相同的方式是包含式的。