CN107533425A - 跨平台命令可扩展性 - Google Patents

跨平台命令可扩展性 Download PDF

Info

Publication number
CN107533425A
CN107533425A CN201680024798.0A CN201680024798A CN107533425A CN 107533425 A CN107533425 A CN 107533425A CN 201680024798 A CN201680024798 A CN 201680024798A CN 107533425 A CN107533425 A CN 107533425A
Authority
CN
China
Prior art keywords
extension
main frame
application
user interface
definition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201680024798.0A
Other languages
English (en)
Inventor
H·L·瓜达拉玛
A·萨拉马托夫
E·W·马伊纳
B·瑞奇
A·弗莱达尔
R·伽夫里拉
R·J·萨尔加多
P·亚伯拉罕
T·阮
P·Y-L·常
R·帕尔玛
A·索
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107533425A publication Critical patent/CN107533425A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1407General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在部署主机应用时,可以接收与客户端应用相关联的一个或多个命令的抽象。抽象可以是具有相同包和代码的扩展,使得扩展在各种平台、主机应用和设备上被启用。例如,可以基于抽象中包含的定义,通过主机应用的用户界面来显示扩展,使得该扩展与在其上部署主机应用的平台和设备兼容。命令可以被转换为图形控制元件,并且基于定义与扩展一起显示。在调用命令中的一个或多个时,可以基于定义来执行动作,以允许客户端应用在适当的上下文中与在主机应用中创建、编辑和/或查看的内容进行交互。

Description

跨平台命令可扩展性
背景技术
在一天中用户可以与各种设备进行交互,例如智能电话、平板计算机、膝上型计算机和/或台式计算机。每个设备可以与用于执行生产力套件和/或各种客户端应用的不同平台相关联。因此,可以方便的是,利用多个平台特定的实现方式扩展主机应用(如生产力套件应用)的用户界面,使得客户端应用能够随着在一天中用户切换设备而与正在主机应用中创建、编辑和/或查看的内容进行无缝地交互。
发明内容
提供该发明内容以便以简化的形式来引入下面的具体实施方式中进一步描述的概念的选择。该发明内容不旨在排他地确定所要求保护的主题的关键特征或主要特征,也不旨在用于确定所要求保护的主题的范围的辅助。
实施例涉及跨平台命令可扩展性的实现方式。响应于主机应用的部署,主机应用可以接收与客户端应用相关联的一个或多个命令的抽象,其中抽象包括一个或多个定义,并且是具有相同的包和代码的扩展,使得跨多个平台、设备和应用程序而使能扩展。可以基于定义通过主机应用的用户界面来显示扩展,并且命令可以与扩展一起显示。响应于通过用户界面检测到对至少一个命令的调用,可以基于定义执行动作。
通过阅读以下详细描述和对相关附图的阅览,这些和其它特征和优点将是显而易见的。应当理解,前面的一般描述和以下详细描述都是解释性的,并且不限制要求保护的方面。
附图说明
图1包括可以实现跨平台命令可扩展性的示例的网络环境;
图2包括示出实现跨平台命令可扩展性的过程的概念图;
图3示出了实现跨平台命令可扩展性的示例架构;
图4示出了通过主机应用用户界面显示的扩展的示例配置;
图5是联网的环境,其中可以实现根据实施例的系统;
图6是可以用于实现跨平台命令可扩展性的示例通用计算设备的框图;且
图7示出了根据实施例的实现跨平台命令可扩展性的方法的逻辑流程图。
具体实施方式
如上所述,跨平台命令可扩展性的实现可以使得与客户端应用相关联的一个或多个命令的扩展可以跨多个平台在各种设备上部署的主机应用的用户界面上显示。例如,在部署主机应用时,可以接收到与客户端应用相关联的命令的抽象。可以从诸如与客户端应用或主机应用相关联的软件开发者的服务提供商接收该抽象,其中可以使用例如清单模板或一个或多个应用编程接口(API)来创建抽象。抽象可以包括一个或多个定义,并且可以是具有相同包和代码的单个扩展,使得跨多个平台、设备和应用而使能扩展,包括在其上部署了主机应用的平台和设备。扩展可以通过主机应用的用户界面显示,并且将命令转换为图形控制元件,并且可以基于定义与扩展一起显示。响应于通过用户界面检测到对至少一个命令的调用,可以基于定义执行诸如通过主机应用的用户界面启动客户端应用的任务窗格、菜单和/或对话的动作。
在下面的详细描述中,参考形成其一部分的附图,并且在附图中通过示例的方式示出了具体实施例或示例。可以组合这些方面,可以利用其他方面,并且可以在不脱离本公开的精神或范围的情况下进行结构改变。因此,以下详细描述不被用于限制意义,并且本发明的范围由所附权利要求及其等同物限定。
虽然将在与在个人计算机上的操作系统上运行的应用程序一起执行的程序模块的一般上下文中描述一些实施例,但是本领域技术人员将认识到,这些方面也可以与其他程序模块组合地实现。
通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将理解,可以使用包括手持设备、多处理器系统、基于微处理器或可编程消费电子设备、小型计算机、大型计算机和类似计算设备的其他计算机系统配置来实践实施例。实施例还可以在分布式计算环境中实现,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
一些实施例可以被实现为计算机实现的过程(方法)、计算系统或者实现为制品,诸如计算机程序产品或计算机可读介质。计算机程序产品可以是计算机系统可读并且编码有包括使计算机或计算系统执行示例过程的指令的计算机程序的计算机存储介质。计算机可读存储介质是计算机可读存储器设备。计算机可读存储介质可以例如通过易失性计算机存储器、非易失性存储器、硬盘驱动器、闪存驱动器、软盘或压缩盘以及类似的硬件介质中的一个或多个来实现。
在该说明书中,术语“服务器”总体上是指通常在联网的环境中执行一个或多个软件程序的计算设备。然而,也可以将服务器实现为被视为在网络上的服务器、在一个或多个计算设备上执行的虚拟服务器(软件程序)。以下提供有关这些技术和示例操作的更多详细信息。
图1包括其中可以实现跨平台命令可扩展性的示例网络环境。如图100所示,与用户104相关联的设备102可以包括各种应用,例如主机应用106和客户端应用110A,以及被配置为存储与各种应用相关联的数据的本地存储112。设备102可以包括台式计算机、膝上型计算机、平板计算机、车载计算机、智能电话或可穿戴计算设备以及其他类似设备。主机应用106可以是主机应用106的薄(例如,web浏览器)或厚(例如,本地安装的应用程序)版本,而客户端应用110A可以是本地安装的应用程序。在一些示例中,主机应用106可以与生产力套件相关联,其中主机应用106是文字处理应用、通信应用、电子表格应用、演示应用和笔记本应用以及其他生产力套件应用之一。由一个或多个服务器116托管的服务提供商114可以是与客户端应用110A相关联的软件开发者、与主机应用106相关联的软件开发者和/或第三方服务。当主机应用106跨越多个平台部署在各种设备(包括设备102)上时,服务提供商114可能希望在主机应用106的用户界面上启用与客户端应用110A相关联的命令的扩展。
在示例的实施例中,响应于设备102上的客户端应用110A的本地安装,服务提供商114可以采用抽象模块118来创建与客户端应用110A相关联的一个或多个命令的抽象。如果服务提供商114是与客户端应用110A相关联的软件开发者,则抽象模块118可以使用存储在服务器116内的客户端应用110B的副本来创建抽象。如果服务提供商114是与主机应用106或第三方服务相关联的软件开发者,则服务提供商114可以从与客户端应用110A相关联的软件开发者获得许可并取回客户端应用110C的副本,从而创造抽象。抽象模块118可以使用模板清单和/或一个或多个API创建抽象,并将抽象存储在与服务提供者114相关联的数据存储库120中。抽象可以包括一个或多个定义,并且可以是具有相同的包和代码的单个扩展,使得各种不同的平台和设备可以根据主机应用106在其上正在运行的平台和设备将命令解释为适当的具体实现方式。例如,定义可以包括目标主机(例如,主机应用106),目标设备(例如,在其上部署有主机应用106的设备102),扩展在目标主机用户界面上的放置,表示命令的一个或多个类型的图形控制元件,与扩展一起放置或分组命令,响应于对至少一个命令的调用的检测而执行的动作,以及与命令相关联的激活规则。
响应于设备102上的主机应用106的部署和/或执行,服务提供商114可以从数据存储库120取回抽象,并通过诸如基于云的网络的一个或多个网络130向主机应用106提供抽象。在接收时,主机应用106可以基于抽象中包含的定义,通过主机应用106的用户界面来显示扩展108,使得扩展108与在其上部署和/或执行的主机应用106的平台和设备102兼容。在一些实施例中,扩展108可以被投影为用户界面中的本地入口点。例如,扩展108可以投影在主要命令表面上(例如,通过命令栏或上下文菜单),消息组件命令表面和/或后台命令表面。这些命令可以基于定义被转换成图形控制元件并且与扩展108一起显示。
响应于通过用户界面检测到对至少一个命令的用户调用,主机应用106可以被配置为执行由抽象定义的动作。例如,主机应用106可以通过用户界面启动客户端应用110的特殊目的任务窗格、菜单和/或对话,使得客户端应用110能够在适当的上下文中与正在主机应用106中创建、编辑和/或查看的内容进行交互。在其他实施例中,可以触发定制代码开发以处理该动作。例如,可以开发沙盒代码来处理动作。
一旦将扩展108添加到在与用户104相关联的设备102和平台上执行的主机应用106的用户界面,则不需要用户104做出任何明确的手势就能将扩展108添加到正在与用户104相关联的其他设备和/或平台上执行的相同主机应用中。例如,扩展108可以跨设备和平台漫游,使得不需要单独地添加扩展108到主机应用106中,因为它在每个平台或每个设备上被部署和/或执行。如果扩展108被确定为不再需要和/或不再想要,则可以从设备102卸载与扩展108相关联的客户端应用110A。
如本文所描述的,跨平台命令可扩展性可使得客户端应用能够经由通过主机应用的用户界面显示的扩展而在适当的上下文中与在主应用程序中正在创建、编辑和/或查看的内容进行无缝交互。在一些示例中,可以使用主机应用的定制工具来实现对扩展的定制,以进一步增加客户端应用与主机应用之间的交互。因此,跨平台命令可扩展性可以提供对各种客户端应用和主机应用的更深层次的用户界面集成,这可以实现改善的可用性,从而实现更高效的用户交互。
此外,通过创建客户端应用的命令的抽象作为具有相同包和代码的单个扩展,可以跨各种平台、主机应用和客户端设备而使能扩展。因此,扩展可以跨设备和平台漫游,使得当在与用户相关联的每个平台或每个设备上部署和/或执行时,不需要将扩展单独地添加到主机应用的用户界面。因此,跨平台命令可扩展性的实现还可以使能降低的处理器负载(并因此提高处理速度),节约存储器以及降低的网络带宽使用以及其他特征,这些可以提高在其上部署主机应用的设备的效率和性能。
如本文所述的实施例解决了由不能由人管理的由基于软件的服务创建的非常大规模的操作引起的需求。这里描述的动作/操作不仅仅是使用计算机,而是解决用作为结合大量用户、应用、平台和设备提供的服务的软件的直接后果的系统的结果。
图2包括示出实现跨平台命令可扩展性的过程的概念图。如图200所示,服务提供商204可能希望使能与跨多个平台部署在各种设备上的主机应用208的用户界面上的客户端应用相关联的命令的扩展。服务提供商204可以是与客户端应用相关联的软件开发者,例如与主机应用和/或第三方服务相关联的软件开发者。
在示例实施例中,服务提供商204可以使用清单模板202创建与客户端应用相关联的一个或多个命令的抽象。在一些示例中,使用清单模板202创建抽象可以提供与下级客户端应用的向后兼容性。可替代地,服务提供商204可以使用一个或多个应用编程接口(API)来创建抽象,这将结合图3进行讨论。抽象可以是具有相同包和代码的单个扩展,使得跨多个平台、设备和主机应用而使能扩展。抽象可以包括一个或多个定义,例如目标主机(例如,主机应用208)、目标设备(例如,主机应用208被部署在其上的设备)、在目标主机用户界面上的扩展的放置,用于表示命令的一个或多个类型的图形控制元件、命令的放置或分组,响应于对至少一个命令的调用的检测而执行的动作以及与例如命令相关联的激活规则。服务提供商204可以将抽象存储在存储库206中,诸如数据存储库。在一些实施例中,服务提供者204可以向管理员214提供抽象。
用户212或管理员214可以部署分别来自应用目录210和/或存储在与用户212或管理员214相关联的设备上的文件共享的主机应用208。响应于部署,可以从存储库206取回抽象并提供给主机应用208。主机应用208可以被配置为基于抽象的定义通过主机应用208的用户界面显示扩展。命令可以与扩展一起显示,其中命令可以基于抽象的定义被转换为用于进行显示的图形控制元件。图形控制元件可以包括例如按钮、菜单和/或切换键。
响应于用户212或管理员214通过主机应用208的用户界面激活和/或调用一个或多个图形控制元件,可以按抽象所定义的来执行动作。在一个示例中,客户端应用的任务窗格、菜单或对话框中的一个可以通过主机应用的用户界面启动,使得客户端应用能够基于在其上部署主机应用208的平台和设备在适当的上下文中与在主应用程序208中创建、编辑和/或查看的内容进行交互。在另一个示例中,定制开发者代码的开发可以被触发以处理该动作。
在示例的场景中,客户端应用可以包括使得用户能够基于模板创建文档的命令。与客户应用相关联的服务提供商可能希望能够在文字处理应用的用户界面上使能命令的扩展,使得客户端应用能够基于在其上部署了文字处理应用的平台和设备在适当的上下文中与在文字处理应用中创建、编辑和/或查看的内容进行交互。
响应于在膝上型计算机上安装客户端应用,服务提供商可以使用清单模板来创建命令的抽象,其中抽象包括定义,并且是具有相同的包和相同的代码的单个扩展。定义可以包括诸如文字处理应用的目标主机,以及诸如膝上型计算机的目标设备。定义还可以包括扩展在目标主机的用户界面上的放置,例如文字处理应用的用户界面的命令栏上现有的“开始”选项卡。定义还可以包括用于表示命令的图形控制元件的类型,例如按钮,以及命令与扩展一起的放置。定义还可以包括响应于对命令的调用的检测而执行的动作,例如启动客户端应用的任务窗格,以及与命令相关联的激活规则。
响应于在膝上型计算机上部署文字处理应用,服务提供者可以向文字处理应用提供抽象。文字处理应用可以将扩展显示为文字处理应用的用户界面的命令栏上一组现有的“开始”选项卡,其中该命令基于抽象的定义与该扩展一起显示为按钮。响应于用户调用命令/按钮,文字处理应用可以启动与客户端应用相关联的任务窗格,使得用户能够与客户端应用和文字处理应用无缝地交互。例如,用户可以使用来自客户端应用的模板在文字处理应用内创建文档。
图3示出了针对跨平台命令可扩展性而实现的示例架构。如图300所示,可以使用一个或多个应用编程接口(API)304来创建与客户端应用相关联的一个或多个命令的抽象302。例如,API 304可以包括命令性API和声明性API。抽象302可以包括一个或多个定义303,并且可以是具有相同的包和代码的单个扩展,使得各种不同的平台可以根据目标主机的平台将命令解释为适当的具体实现,并且因此扩展正在运行。
定义303可以包括目标主机,例如生产力套件应用(例如,文字处理应用、演示应用、电子表格应用、通信应用和笔记本应用以及其他示例),以及诸如智能电话、平板计算机和/或台式机的目标设备。定义303还可以包括用于表示目标主机的用户界面上的命令的图形控制元件的类型(诸如按钮,菜单和/或切换键)。定义303还可以包括如何用户界面上的扩展以及用户界面上的显示扩展的地点或位置对命令进行分组。例如,扩展是否可以在主命令表面(例如,通过命令栏或上下文菜单)、消息组件命令表面和/或一个或多个后台命令表面上显示。如果扩展被定义为通过命令栏显示,则定义还可以包括扩展是否可以在用户界面的命令栏的现有选项卡上显示为组,或者扩展是否可以被显示为在为命令栏创建的新选项卡上的一组或多组。
定义303还可以包括用于指示当用户调用一个或多个命令时要调用的功能的命令动作,以及针对命令的隐式和/或显式激活规则。可以从作为目标的扩展类型或特定扩展点导出隐式激活规则。例如,在没有任何进一步规则的情况下,以主机应用的主命令表面作为目标隐含地表示这些命令是永远存在的。隐式激活规则的另一个示例是向“内容”扩展类型(可嵌入对象)添加命令,这隐含地意味着每当选择该对象时,就会显示这些命令。扩展与文档一起移动,因此命令也将与文档一起移动。显式激活规则提供对何时显示命令的默认(tacit)控制,例如,显示针对某种类型的文档的命令或与给定特征匹配的命令。例如,在创建和/或编辑基于发票的文档时,在文字处理应用中显示一些命令。又例如,当消息包含跟踪号码时,在通信应用程序中显示命令。
在部署目标主机之后,目标主机可以接收抽象302。抽象302的定义303可以由目标主机的命令定义解释器306解释,并且经解释的定义可以被传送到被配置为控制命令的激活的目标主机的命令激活控制器308。目标主机的命令用户界面生成器310可以被配置为向目标主机提供平台特定的用户界面312,通过该平台特定的用户界面312,基于抽象302的经解释的定义而显示扩展314。命令可以与扩展一起显示,其中可以基于抽象302的经解释的定义将命令转换成图形控制元件。
当用户调用表示命令的图形控制元件中的一个时,可以将动作执行器316配置为基于抽象302的经解释的定义而执行动作以执行命令。例如,动作执行器316可以通过目标主机的用户界面来显示客户端应用的特殊目的任务窗格、菜单或对话框,使客户端应用能够在适当的上下文中与正在目标主机中创建、编辑和/或查看的内容进行交互。在示例的场景中,每个图形控制元件可以指定与存储在数据存储库中的客户端应用相关联的不同的统一资源定位符(URL)。当用户激活图形控制元件中的一个时,动作执行器316可以显示任务窗格并加载对应的URL。在其他实施例中,动作执行器316可以在没有任何用户界面参与的情况下执行命令。例如,动作执行器316可以触发要开发的定制开发者代码318,例如沙盒代码,以处理该动作。在一些实施例中,即使命令的执行不涉及用户界面,也可以通过用户界面通知用户在命令执行期间是否发生错误。
在一些实施例中,扩展可以使用目标主机的定制工具进行定制。例如,可以使用目标主机的定制工具在命令栏中移动现有选项卡、新选项卡,现有或新选项卡中的组和/或与扩展相关联的图形控制元件。在进一步的实施例中,响应于检测到客户端应用的更新,可以更新扩展和/或命令。例如,可以将一个或多个附加命令添加到扩展,可以从扩展中移除一个或多个命令,和/或可以更新一个或多个命令。
一旦扩展被添加到部署在与用户相关联的设备和/或平台上的目标主机的用户界面上,则不需要用户做出任何显式的手势以将命令扩展添加到在与用户相关联的任何其他设备和/或平台上执行的目标主机的用户界面中。例如,如果目标主机检测到没有通过在另一个设备或平台上正在执行的目标主机的用户界面显示命令扩展,则该扩展可以基于抽象302的定义而通过目标主机用户界面自动重新显示。在一些示例中,当扩展被重新显示时,可以向用户提供重试通知。在其他实施例中,目标主机用户界面的扩展可以跨设备和平台漫游,使得在命令扩展在每个平台或每个设备上执行时不需要将命令扩展添加到目标主机。如果扩展被确定为不再需要和/或想要,则与该扩展相关联的客户端应用可以从该设备中被卸载,导致扩展从该命令栏的现有选项卡上的显示中移除,新选项卡整体从命令栏上的显示移除和/或扩展从上下文菜单上的显示移除。
在示例场景中,客户端应用可以包括使得用户能够查找和纠正文档中的常见错误的多个命令。例如,命令可能包括查找和纠正文档中的一致性错误、语法错误和复杂性错误。第三方服务提供商可能希望在生产力套件应用的用户界面上使能该命令的扩展,使得客户端应用能够基于在其上部署生产力套件应用程序的平台和设备而在适当的上下文中与在生产力套件应用中创建、编辑和/或查看的内容进行交互。生产力套件应用可以包括文字处理应用、通信应用、演示应用、电子表格应用和笔记本应用等等。
响应于在平板计算机上安装客户端应用,服务提供商可以使用API创建这些命令的抽象,其中抽象包括定义,并且是具有相同的包和相同代码的单个扩展,使得可以被跨平台、设备和各种生产力套件应用而使能扩展。定义可以包括诸如生产力套件应用的目标主机,以及诸如平板计算机的目标设备。定义还可以包括扩展在目标主机的用户界面上的放置,例如生产力套件应用的用户界面的命令栏上现有的“审阅”选项卡。定义还可以包括用于表示每个命令的图形控制元件的类型,例如按钮,以及结合扩展的命令的放置。定义还可以包括响应于对命令的调用的检测而执行的动作,例如启动客户端应用的任务窗格,以及与命令相关联的激活规则。
响应于生产力套件应用的部署(例如平板计算机上的演示应用),服务提供商可以向演示应用提供抽象。演示应用可以将扩展显示为文字处理应用的用户界面的命令栏上一组现有的“审阅”选项卡,其中命令与扩展一起显示为按钮。响应于用户调用与查找和纠正一致性错误的命令相对应的按钮,演示应用可以启动与客户端应用相关联的任务窗格,使得用户能够在针对在其上演示应用和扩展正在运行的平台和设备的适当的上下文中与客户端应用和演示应用进行交互。例如,客户端应用可以在演示应用中查看的文档内找到并纠正一致性错误。
图4示出了通过主机应用用户界面显示的扩展的示例配置。如前所述,在部署主机应用时,主机应用可以从服务提供商接收与客户端应用相关联的一个或多个命令的抽象。抽象可以包括一个或多个定义,并且可以是具有相同包和代码的单个扩展。扩展可以基于定义通过主机应用的用户界面来显示,并且基于定义将命令转换为图形控制元件,并且进一步与扩展一起显示。配置400A,400B和400C示出了如何通过主机应用的用户界面来显示扩展和命令的各种示例。
在一个实施例中,如配置400A所示,与客户端应用相关联的扩展可以被显示为主机应用用户界面的命令栏402的现有选项卡404上的组410,诸如“审阅”选项卡。用于客户端应用的命令412可以被转换为与扩展一起显示的按钮。现有的选项卡404可以包括与主机应用相关联的一个或多个其他组406,例如“审阅”选项卡的校对和注释相关组,每个组包括用于主机应用的一个或多个命令408。在一些示例中,扩展可以显示在现有选项卡404的末端显示(即,组410可以相对于其他组406在现有选项卡404上的最右侧位置显示),如图所示。在其他示例中,扩展可以基于扩展的优先级而散布在现有选项卡404上的主机应用的命令之间(即,组410可以散布在现有选项卡404上的其他组406之间)。服务提供商可以通过在抽象中定义现有的选项卡404来选择在其上显示扩展的现有选项卡404,或者扩展可以被自动分配给现有的选项卡404。如果在现有选项卡404内显示多个其他扩展,则每个扩展可以按照在扩展的客户端应用安装在设备上的顺序显示在现有选项卡404上。
在另一个实施例中,如配置400B所示,与客户端应用相关联的扩展可以被显示为为主机应用用户界面的命令栏420创建的新选项卡422上的一个或多个命令组424、428、432。可以将客户端应用的命令426、430、434转换成图形控制元件,并且与每个命令组424、428、442中的扩展一起显示。每个相应命令组中的一个或多个命令426、430、434可能是相关的。例如,命令组424内的三个命令426可以与扩展的配置和/或设置相关联。
在另一实施例中,如配置400C中所示,每个与不同客户端应用相关联的多个扩展可以被显示为为主机应用用户界面的命令栏420创建的新标签422上的组444、428、452。每个客户端应用的一个或多个命令446、450、454可以与表示扩展的相应组444、428、425一起显示。
对于上述配置400A,400B和400C中的每一个,文本方案、图形方案、音频方案、动画方案、着色方案、高亮方案和/或着色方案可以用于增强扩展和命令在主机应用用户界面的命令栏上的呈现。例如,可以基于抽象的定义将命令转换为图形控制元件。示例性图形控制元件可以包括一个或多个按钮(例如,命令412、426、430、446和450),包括一个或多个子菜单和按钮的菜单(例如,命令454)和/或切换键(例如,命令434)。例如,菜单可以是下拉菜单或弹出菜单。按钮可以具有可变的尺寸和颜色,并且按钮的布置可以基于预定义的模板。按钮、菜单和/或切换键可以包括图标、文本和/或基于文本的标签,其中标签可以与命令的功能相关联。
在一些实施例中,可以基于目标设备的配置来自动选择按钮的大小。例如,所选择的尺寸可以基于目标设备的显示器的每英寸点数(dpi)、缩放级别、触摸能力。在诸如平板计算机或智能电话具有较小的屏幕显示的一些设备中,可以选择一个尺寸的按钮,并且不与按钮和/或选项卡相关联地显示预定义的模板或标签。例如,当用户与主机应用交互以进行创建、编辑和/或查看内容之一时,这可以保持显示屏幕空间。
图1至图4提供的实施例示出了具体的设备、应用、模块和用户界面配置。实施例不限于根据这些示例的环境。跨平台命令可扩展性可以在采用更少或附加服务、设备、应用、模块和用户界面配置的环境中实现。此外,图1至图4所示的示例性设备、应用、模块和用户界面配置可以使用本文描述的原理以与其它值类似的方式来实现。
图5是简化的联网环境,其中可以实现根据实施例的系统。跨平台命令可扩展性可以通过诸如主机应用的在一个或多个服务器516上执行的软件来实现。该平台可以通过网络510在诸如平板计算机514、智能电话513、膝上型计算机515或台式计算机511(“客户端设备”)的个别计算设备上与客户端应用通信。
在客户端设备511-514中的任何一个上执行的客户端应用可以促进通过由服务器516执行或单独服务器518上的应用进行通信。与客户端应用相关联的一个或多个命令的抽象可以被主机应用响应于在客户端设备511-514之一上部署主机应用而接收。抽象可以包括一个或多个定义,并且可以是具有相同包和代码的单个扩展。扩展可以通过主机应用的用户界面显示,并且可以基于抽象的定义将命令转换为图形控制元件,并且与扩展结合显示。主机应用可以直接或通过数据库服务器520将与抽象定义相关联的数据存储在数据存储库522中。
网络510可以包括服务器、客户端、因特网服务提供商和通信媒体的任何拓扑。根据实施例的系统可以具有静态或动态拓扑。网络510可以包括诸如企业网络的安全网络,诸如无线开放网络的不安全网络或因特网。网络510还可以协调诸如公共交换电话网(PSTN)或蜂窝网络的其他网络的通信。此外,网络510可以包括诸如蓝牙或类似的短距离无线网络。网络510提供本文描述的节点之间的通信。作为示例而非限制,网络510可以包括诸如声学、RF、红外和其它无线介质的无线介质。
可以采用计算设备、应用、数据源和数据分发系统的许多其它配置来实现跨平台命令的可扩展性。此外,图5中讨论的网络环境仅用于说明的目的。实施例不限于示例应用、模块或过程。
图6和相关联的讨论旨在提供可用于实现跨平台命令可扩展性的通用计算设备的简要的一般描述。
例如,计算设备600可以用作服务器、台式计算机、便携式计算机、智能电话、专用计算机或类似设备。在示例性基本配置602中,计算设备600可以包括一个或多个处理器604和系统存储器606。存储器总线608可以用于处理器604和系统存储器606之间的通信。基本配置602由图6中内部虚线内的那些组件来示出。
根据期望的配置,处理器604可以是任何类型的,包括但不限于微处理器(μP)、微控制器(μθ)、数字信号处理器(DSP)或其任何组合。处理器604可以包括诸如级别高速缓存存储器612的一级或多级的缓存、一个或多个处理器核心614和寄存器616。示例处理器核心614可以(每个)包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP Core)或其任何组合。示例性的存储器控制器618也可以与处理器604一起使用,或者在一些实现方式中,存储器控制器618可以是处理器604的内部部分。
根据期望的配置,系统存储器606可以是包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM,闪速存储器等)或其任何组合的任何类型。系统存储器606可以包括操作系统620、客户端应用622、主机应用626和程序数据624。响应于由计算设备600的处理器604部署和/或执行主机应用626,主机应用626可以接收与客户端应用622相关联的一个或多个命令的抽象,其中抽象包括一个或多个定义,并且是具有相同包和代码的扩展627。主机应用626可以基于定义通过主机应用的用户界面显示扩展627,其中命令与扩展一起显示。响应于一个或多个命令的调用,主机应用626可以基于定义来执行动作。程序数据624可以包括除了其它数据之外的与抽象的定义相关的处理数据628,如本文所述。
计算设备600可以具有用于促进基本配置602和任何期望的设备和接口之间的通信的附加的特征或功能以及附加接口。例如,总线/接口控制器630可以用于促进经由存储接口总线634的基本配置602和一个或多个数据存储设备632之间的通信。数据存储设备632可以是一个或多个可移动存储设备636、一个或多个不可移动存储设备638或其组合。可移动存储设备和不可移动存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)的磁盘设备,诸如光盘(CD)驱动器或数字通用盘(DVD)驱动器的光盘驱动器,固态驱动器(SSD)和磁带机等等。示例性计算机存储介质可以包括用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。
系统存储器606、可移动存储设备636和不可移动存储设备638是计算机存储介质的示例。计算机存储介质包括但不限于RAM,ROM,EEPROM,闪速存储器或其他存储器技术,CD-ROM,数字通用盘(DVD),固态驱动器或其它光存储器,磁带盒,磁带,磁盘存储器或其他磁存储设备,或可用于存储所需信息并且可由计算设备600访问的任何其他介质。任何此类计算机存储介质可以是计算设备600的一部分。
计算设备600还可以包括接口总线640,用于促进从各种接口设备(例如,一个或多个输出设备642,一个或多个外围接口644以及一个或多个通信设备646)经由总线/接口控制器630到基本配置602的通信。示例性输出设备642中的一些包括图形处理单元648和音频处理单元650,它们可被配置为经由一个或多个A/V端口652与例如显示器或扬声器的各种外部设备通信。一个或多个示例性外围接口644可以包括串行接口控制器654或并行接口控制器656,其可被配置为经由一个或多个I/O端口658与例如输入设备(例如,键盘,鼠标,笔,语音输入设备,触摸输入设备等)的外部设备或其他外围设备(例如打印机,扫描仪等)进行通信。一个示例性通信设备646包括网络控制器660,其可以被布置为促进经由一个或多个通信端口664通过网络通信链路与一个或多个其他计算设备662的通信。一个或多个其他计算设备662可以包括服务器、计算设备和类似的设备。
网络通信链路可以是通信媒体的一个示例。通常媒体通常可以通过计算机可读指令、数据结构、程序模块或诸如载波或其他传输机制的调制数据信号中的其他数据来实现,并且可以包括任何信息传递介质。“调制数据信号”可以是以对信号中的信息进行编码的方式设置或改变其特性中的一个或多个的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、射频(RF)、微波、红外(IR)和其它无线介质的无线介质。本文所用的术语计算机可读介质可以包括存储介质和通信介质两者。
计算设备600可以被实现为通用或专用服务器、大型机或包括上述任何功能的类似计算机的一部分。计算设备600还可以实现为包括膝上型计算机和非膝上型计算机配置的个人计算机。
示例实施例还可以包括实现跨平台命令可扩展性的方法。这些方法可以以任何数量的方式实现,包括本文所述的结构。一种这样的方式可以是本公开中描述的类型的设备的机器操作。另一种可选方式可以是结合一个或多个人类操作者执行某些操作而其他操作可由机器执行而执行方法的一个或多个单独操作。这些人类操作者不需要彼此搭配,但每个操作者只能使用执行程序一部分的机器。在其他实施例中,人类交互可以是自动化的,例如可以是机器自动化的预选标准。
图7示出了根据实施例的用于实现跨平台命令可扩展性的方法的过程700的逻辑流程图。过程700可以在服务器或其他系统上实现。
过程700从操作710开始,其中响应于主机应用部署在设备上,主机应用被配置为接收与客户端应用相关联的一个或多个命令的抽象。可以通过设备的通信接口从服务提供商接收抽象,其中服务提供者可以被配置为使用模板清单和/或一个或多个API来创建抽象。抽象可以是具有相同包和代码的单个扩展,使得跨多个平台、设备和应用(包括部署有主机应用的平台和设备)而使能扩展。抽象可以包括一个或多个定义,包括例如目标主机(例如,主机应用),目标设备(例如,部署了主机应用的设备),扩展在用户界面上的放置,用于表示命令的一种或多种图形控制元件,命令的放置或分组,响应于对至少一个命令的调用的检测而执行的动作以及与该命令相关联的激活规则。
在操作720,可以基于定义通过主机应用的用户界面显示该扩展,使得该扩展与在其上部署主机应用的平台和设备兼容。在一些示例中,扩展可以在用户界面的命令栏的现有选项卡上显示为组,该扩展可以被显示为为命令栏创建的新选项卡上的一个或多个组,和/或扩展可以显示在用户界面的上下文菜单上。通过将命令转换成图形控制元件(例如按钮,菜单和切换键),以及基于定义命令放置在扩展中和/或在扩展内进行分组,可以通过用户界面结合扩展来显示命令。
在操作730,可以响应于通过主机应用的用户界面检测到至少一个命令的调用而基于定义来执行动作。该动作可以包括通过主机应用的用户界面启动与客户端应用相关联的任务窗格、菜单和/或对话。该操作还可以包括触发定制开发者代码的开发来处理该动作。
包括在过程700中的操作是为了说明的目的。跨平台命令可扩展性可以由具有较少或附加步骤的相似过程以及使用本文所述原理按不同操作顺序来实现。本文描述的操作可以由在一个或多个计算设备、一个或多个处理器核心、专用处理设备和/或通用处理器以及其他示例中操作的一个或多个处理器执行。
根据一些示例,提供了实现跨平台命令可扩展性的方法。示例性方法可以包括在主机应用处响应于主机应用的部署而接收与客户端应用相关联的一个或多个命令的抽象,其中抽象包括一个或多个定义,并且是具有相同包和代码的扩展,使得扩展跨多个平台、设备和应用而使能扩展。示例性方法还可以包括基于定义通过主机应用的用户界面显示扩展,其中命令与扩展一起显示,并且响应于通过用户界面检测到至少一个命令的调用来基于定义执行动作。
在其他示例中,扩展的定制可以使用主机应用的一个或多个定制工具来启用。扩展可以在主机应用的用户界面上的命令栏的现有选项卡上显示为一组。扩展可以在为主机应用的用户界面的命令栏创建的新选项卡上显示为一个或多个组。命令可以基于一个或多个定义被转换为一个或多个图形控制元件用于进行显示,其中图形控制元件包括按钮、菜单、下拉菜单、选择库,文本输入框和/或切换键。
在另外的示例中,基于一个或多个定义来执行动作可以包括通过主机应用的用户界面启动客户端应用的任务窗格、菜单和/或对话框。基于一个或多个定义来执行动作还可以包括触发定制开发者代码的开发以执行动作。通过从部署主机应用的设备上取消安装客户端应用,可以从主机应用的用户界面中移除扩展。响应于检测到对客户端应用的更新,可以启用对扩展的更新,其中更新可以包括显示一个或多个附加命令,从显示中移除一个或多个命令中的至少一个,并且更新显示的一个或多个命令。
根据一些实施例,描述了用于实现跨平台命令可扩展性的计算设备。示例性计算设备可以包括被配置为促进计算设备和服务提供商之间的通信的通信接口,被配置为存储指令的存储器以及耦合到存储器并且被配置为与存储在存储器中的指令相结合地执行主机应用的一个或多个处理器。主机应用可以被配置为通过通信接口从服务提供商接收与客户端应用相关联的一个或多个命令的抽象,其中抽象包括一个或多个定义,并且是具有相同的包和代码的扩展,使得跨多个平台、设备和应用而使能扩展。主机应用还可以被配置为基于定义显示主机应用的用户界面的扩展,其中命令与扩展一起显示,并且响应于检测到通过用户界面的命令调用来基于定义执行动作。
在其他实施例中,定义包括目标主机、目标设备、扩展在用户界面上的放置,用于表示命令的一个或多个类型的图形控制元件,命令的放置或分组,响应于对命令的调用的检测而执行的动作以及与命令相关联的隐式和显式激活规则。服务提供商可以是与客户端应用相关联的软件开发者、与主机应用相关联的软件开发者或第三方服务。可以由服务提供商使用清单模板或一个或多个应用编程接口(API)响应于计算设备上的客户端应用的安装而创建抽象。
在另外的实施例中,主机应用可以被配置为在用户界面上的命令栏的现有选项卡上将该扩展显示为组,在基于定义为用户界面上的命令栏创建的新选项卡上将该扩展显示为一个或多个组,或在用户界面的上下文菜单上显示扩展。主机应用可以被进一步配置为相对于命令栏的现有选项卡上的其他组在现有选项卡上的最靠右位置处将扩展显示为组。主机应用可以被进一步配置为基于扩展的优先级,在与命令栏的现有选项卡上的其它组散布的位置处将该扩展显示为组。主机应用可以被进一步配置为通过主机应用的用户界面显示另一个扩展,其中扩展和另一个扩展可以按照与扩展和另一个扩展相关联的相应的客户端应用安装在计算设备上的顺序显示在现有选项卡上。
根据一些示例,描述了其上存储有指令以实现跨平台命令可扩展性的计算机可读存储器设备。示例指令可以包括在主机应用处响应于主机应用的部署而接收与客户端应用相关联的一个或多个命令的抽象,其中抽象包括一个或多个定义,并且是具有相同的包和代码的扩展使得跨多个平台、设备和应用而使能扩展。示例性指令还可以包括基于定义通过主机应用的用户界面来显示该扩展,并且通过基于该定义将该命令转换为一个或多个图形控制元件来与该扩展一起显示命令。示例性指令还可以包括响应于检测到用户通过用户界面调用命令而基于定义执行动作。
在其他示例中,响应于在执行动作时检测到错误,可以通过用户界面向用户通知错误。
上述说明书、示例和数据提供了实施例的组合物的制造和使用的完整描述。虽然已经以结构特征和/或方法动作特有的语言描述了主题,但是应当理解,所附权利要求中限定的主题不一定限于上述具体特征或动作。相反,上述具体特征和动作被公开为实现权利要求和实施例的示例形式。

Claims (15)

1.一种实现跨平台命令可扩展性的方法,所述方法包括:
响应于主机应用的部署,在所述主机应用处接收与客户端应用相关联的一个或多个命令的抽象,其中所述抽象包括一个或多个定义,并且是具有相同的包和代码的扩展,使得跨多个平台、设备和应用而使能所述扩展;
基于所述一个或多个定义,通过所述主机应用的用户界面显示所述扩展,其中所述一个或多个命令与所述扩展一起显示;以及
响应于通过所述用户界面检测到对所述一个或多个命令中的至少一个的调用,基于所述一个或多个定义执行动作。
2.根据权利要求1所述的方法,还包括:
使用所述主机应用的一个或多个定制工具来使能对所述扩展的定制。
3.根据权利要求1所述的方法,基于所述一个或多个定义将所述一个或多个命令转换为一个或多个图形控制元件以进行显示,其中,所述图形控制元件包括按钮、菜单和切换键中的一个或多个。
4.根据权利要求1所述的方法,其中,基于所述一个或多个定义来执行所述动作包括通过所述主机应用的用户界面启动所述客户端应用的任务窗格、菜单和对话中的一个或多个。
5.根据权利要求1所述的方法,其中,基于所述一个或多个定义执行所述动作包括触发对定制开发者代码的开发以执行所述动作。
6.根据权利要求1所述的方法,还包括:
响应于检测到对所述客户端应用的更新,使能对所述扩展的更新,其中,所述更新能够包括显示一个或多个附加命令,从显示中移除所述一个或多个命令中的至少一个,以及更新所显示的一个或多个命令。
7.一种实现跨平台命令可扩展性的计算设备,所述计算设备包括:
通信接口,其被配置为促进计算设备和服务提供商之间的通信;
存储器,其配置为存储指令;以及
一个或多个处理器,其耦合到所述存储器,并且被配置为结合存储在所述存储器中的指令执行主机应用,所述主机应用被配置为:
通过所述通信接口从服务提供商接收与客户端应用相关联的一个或多个命令的抽象,其中,所述抽象包括一个或多个定义,并且是具有相同包和代码的扩展,使得跨多个的平台、设备和应用而使能所述扩展;
基于所述一个或多个定义,通过所述主机应用的用户界面来显示所述扩展,其中所述一个或多个命令与所述扩展一起显示;以及
响应于通过所述用户界面检测对所述一个或多个命令的调用,基于所述一个或多个定义执行动作。
8.根据权利要求7所述的计算设备,其中,所述一个或多个定义包括目标主机、目标设备、所述扩展在所述用户界面上的放置,用于表示所述一个或多个命令的一个或多个类型的图形控制元件,所述一个或多个命令的放置或分组,响应于检测到对所述一个或多个命令的调用而执行的动作,以及与所述一个或多个命令相关联的隐式和显式激活规则。
9.根据权利要求7所述的计算设备,其中,所述服务提供商是与所述客户端应用相关联的软件开发者、与所述主机应用相关联的软件开发者、以及第三方服务中的一个。
10.根据权利要求7所述的计算设备,其中,所述抽象是响应于所述计算设备上的所述客户端应用的安装而由所述服务提供商使用一个或多个应用编程接口(API)和清单模板中的一个而创建的。
11.根据权利要求7所述的计算设备,其中,所述主机应用被配置为执行以下中的一个:在所述用户界面上的命令栏的现有选项卡上将所述扩展显示为组,在基于所述一个或多个定义为用户界面上的所述命令栏创建的新选项卡上将所述扩展显示为一个或多个组,以及在所述用户界面的上下文菜单上显示所述扩展。
12.根据权利要求11所述的计算设备,其中,所述主机应用还被配置为在相对于所述命令栏的现有选项卡上的其他组的所述现有选项卡上的最靠右位置处,将所述扩展显示为组。
13.根据权利要求11所述的计算设备,其中,所述主机应用还被配置为基于所述扩展的优先级,在与所述命令栏的现有选项卡上的其他组交替的位置处,将所述扩展显示为组。
14.根据权利要求11所述的计算设备,其中,所述主机应用还被配置为通过所述主机应用的所述用户界面显示另一扩展,其中,所述扩展和所述另一扩展是按照与所述扩展和所述另一扩展相关联的相应客户端应用安装在所述计算设备上的顺序而被显示在所述现有选项卡上的。
15.一种计算机可读存储器设备,其上存储有实现跨平台命令可扩展性的指令,所述指令包括:
响应于主机应用的部署,在所述主机应用处接收与客户端应用相关联的一个或多个命令的抽象,其中,所述抽象包括一个或多个定义,并且是具有相同的包和代码的扩展,使得跨多个平台、设备和应用而使能所述扩展;
基于所述一个或多个定义,通过所述主机应用的用户界面来显示所述扩展;
通过基于所述一个或多个定义将所述一个或多个命令转换为一个或多个图形控制元件来与所述扩展一起显示所述一个或多个命令;以及
响应于通过所述用户界面检测到对所述一个或多个命令的调用,基于所述一个或多个定义执行动作。
CN201680024798.0A 2015-04-27 2016-04-26 跨平台命令可扩展性 Withdrawn CN107533425A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562153423P 2015-04-27 2015-04-27
US62/153,423 2015-04-27
US14/839,942 US20160313958A1 (en) 2015-04-27 2015-08-29 Cross-platform command extensibility
US14/839,942 2015-08-29
PCT/US2016/029270 WO2016176159A1 (en) 2015-04-27 2016-04-26 Cross-platform command extensibility

Publications (1)

Publication Number Publication Date
CN107533425A true CN107533425A (zh) 2018-01-02

Family

ID=57147734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680024798.0A Withdrawn CN107533425A (zh) 2015-04-27 2016-04-26 跨平台命令可扩展性

Country Status (4)

Country Link
US (1) US20160313958A1 (zh)
EP (1) EP3289451A1 (zh)
CN (1) CN107533425A (zh)
WO (1) WO2016176159A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108282473A (zh) * 2018-01-17 2018-07-13 新联智慧信息技术(深圳)有限公司 云存储命令管理方法及系统

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018152111A1 (en) * 2017-02-14 2018-08-23 Sherman Brian Arthur System for creating data-connected applications
US11978436B2 (en) * 2022-06-03 2024-05-07 Apple Inc. Application vocabulary integration with a digital assistant

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030208545A1 (en) * 2002-05-01 2003-11-06 Eaton Eric Thomas Instant message communication system for providing notification of one or more events and method therefor
US20070010794A1 (en) * 2002-11-01 2007-01-11 Mitchell Dann Devices and methods for endolumenal gastrointestinal bypass
CN103168325A (zh) * 2010-10-05 2013-06-19 西里克斯系统公司 用于本地用户体验的显示管理
US20130283139A1 (en) * 2012-04-19 2013-10-24 Microsoft Corporation Managing web extension through manifest file
US8667480B1 (en) * 2010-04-19 2014-03-04 Google Inc. Automatically updating browser extensions, and applications thereof
CN104704448A (zh) * 2012-08-31 2015-06-10 思杰系统有限公司 本地和远程计算环境之间的反向无缝集成
CN104881601A (zh) * 2015-06-17 2015-09-02 北京奇虎科技有限公司 悬浮窗显示设置、控制方法和装置
CN105204744A (zh) * 2015-09-28 2015-12-30 北京金山安全软件有限公司 一种启动应用程序的方法、装置及电子设备
CN105373291A (zh) * 2015-11-11 2016-03-02 北京麒麟合盛网络技术有限公司 一种界面切换方法及装置
US9432726B2 (en) * 2011-08-16 2016-08-30 Destiny Software Productions Inc. Script-based video rendering

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5844554A (en) * 1996-09-17 1998-12-01 Bt Squared Technologies, Inc. Methods and systems for user interfaces and constraint handling configurations software
US6384849B1 (en) * 1997-07-14 2002-05-07 Microsoft Corporation Method for displaying controls in a system using a graphical user interface
US6701383B1 (en) * 1999-06-22 2004-03-02 Interactive Video Technologies, Inc. Cross-platform framework-independent synchronization abstraction layer
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
JP2002049451A (ja) * 2000-08-03 2002-02-15 Fujitsu Ltd 情報処理装置、メニュー表示方法及びメニュー処理プログラムを格納したコンピュータ可読の記憶媒体
US20030048286A1 (en) * 2001-08-10 2003-03-13 Ranjan Lal System and method for providing an enterprise oriented web browser and productivity environment
US7069562B2 (en) * 2001-12-12 2006-06-27 Sun Microsystems, Inc. Application programming interface for connecting a platform independent plug-in to a web browser
JP2004046817A (ja) * 2002-05-23 2004-02-12 Ricoh Co Ltd プログラム、記憶媒体、データ管理装置及びデータ管理システム
US7516178B1 (en) * 2004-01-21 2009-04-07 Computer Associates Think, Inc. Communicating messages between components in a client/server environment using a object broker
US7412665B2 (en) * 2004-02-13 2008-08-12 Microsoft Corporation Menu management in an OLE document environment
US8108890B2 (en) * 2004-04-20 2012-01-31 Green Stuart A Localised menus
US7451435B2 (en) * 2004-12-07 2008-11-11 Microsoft Corporation Self-describing artifacts and application abstractions
WO2007044621A2 (en) * 2005-10-07 2007-04-19 Roe River Corporation Systems and methods for uploading and downloading files in a distributed network
US7747785B2 (en) * 2006-04-14 2010-06-29 Microsoft Corporation Instant messaging plug-ins
US20090249446A1 (en) * 2007-10-22 2009-10-01 Paul Thomas Jenkins Method and system for managing enterprise content
US20090182739A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Using metadata to route documents
US7904537B2 (en) * 2008-01-11 2011-03-08 Microsoft Corporation Architecture for online communal and connected experiences
US8589955B2 (en) * 2008-02-12 2013-11-19 Nuance Communications, Inc. System and method for building applications, such as customized applications for mobile devices
US8745573B2 (en) * 2008-06-16 2014-06-03 Beek Fund B.V. L.L.C. Platform-independent application development framework
US20100088740A1 (en) * 2008-10-08 2010-04-08 Bookette Software Company Methods for performing secure on-line testing without pre-installation of a secure browser
KR101175322B1 (ko) * 2008-12-19 2012-08-20 한국전자통신연구원 상황에 맞게 추천되는 서비스를 동적으로 디스플레이하는 휴대용 단말 장치 및 방법
US8499152B1 (en) * 2009-05-28 2013-07-30 Trend Micro, Inc. Data positioning and alerting system
US20110060812A1 (en) * 2009-09-10 2011-03-10 Level 3 Communications, Llc Cache server with extensible programming framework
CN101778169B (zh) * 2010-02-04 2012-09-05 华为终端有限公司 应用程序界面的动态显示方法及装置
US20110265010A1 (en) * 2010-04-27 2011-10-27 Ferguson David William System and method for generation of website display and interface
US8725585B1 (en) * 2010-05-18 2014-05-13 Google Inc. Automatic vetting of web applications to be listed in a marketplace for web applications
US8495485B2 (en) * 2010-06-30 2013-07-23 International Business Machines Corporation System, method, and apparatus for location identification of content
US8694988B2 (en) * 2010-10-22 2014-04-08 Adobe Systems Incorporated Runtime extensions
US9213539B2 (en) * 2010-12-23 2015-12-15 Honeywell International Inc. System having a building control device with on-demand outside server functionality
US20120166941A1 (en) * 2010-12-24 2012-06-28 Microsoft Corporation Content processing with extensibility
US20120254734A1 (en) * 2011-04-03 2012-10-04 Judkins Renae C Graphics-plugin and server method for invitation designs
US8707289B2 (en) * 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US9069498B2 (en) * 2011-09-12 2015-06-30 Microsoft Technology Licensing, Llc Presenting devices as applications
US8881179B2 (en) * 2011-11-14 2014-11-04 Microsoft Corporation Cross-platform application programming interfaces for applications
US9454349B2 (en) * 2011-12-20 2016-09-27 Microsoft Technology Licensing, Llc User interface placeholders for application extensions
US8433719B1 (en) * 2011-12-29 2013-04-30 Google Inc. Accelerating find in page queries within a web browser
US8799988B2 (en) * 2012-01-25 2014-08-05 Microsoft Corporation Document communication runtime interfaces
US8843822B2 (en) * 2012-01-30 2014-09-23 Microsoft Corporation Intelligent prioritization of activated extensions
US9449112B2 (en) * 2012-01-30 2016-09-20 Microsoft Technology Licensing, Llc Extension activation for related documents
US9092728B2 (en) * 2012-04-19 2015-07-28 Microsoft Technology Licensing, Llc Providing rule based analysis of content to manage activation of web extension
US8990363B1 (en) * 2012-05-18 2015-03-24 hopTo, Inc. Decomposition and recomposition for cross-platform display
WO2014028901A2 (en) * 2012-08-16 2014-02-20 Skyfire Labs, Inc. Mobile device toolbar architecture
US8879112B2 (en) * 2012-09-28 2014-11-04 Interactive Memories, Inc. Method for optimizing printing quality for image-laden PDF files at lower file sizes
US20140136943A1 (en) * 2012-11-09 2014-05-15 Microsoft Corporation Rendering web content within documents
US9038019B2 (en) * 2013-02-05 2015-05-19 Sap Se Paige control for enterprise mobile applications
CN105335187B (zh) * 2014-08-14 2019-12-13 阿里巴巴集团控股有限公司 一种应用的处理方法及装置
JP2016130902A (ja) * 2015-01-13 2016-07-21 株式会社リコー 機器、情報処理システム、情報処理方法、及び情報処理プログラム
US10031730B2 (en) * 2015-04-22 2018-07-24 Salesforce.Com, Inc. Systems and methods of implementing extensible browser executable components
US9420027B1 (en) * 2015-04-27 2016-08-16 Wowza Media Systems, LLC Systems and methods of communicating platform-independent representation of source code

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030208545A1 (en) * 2002-05-01 2003-11-06 Eaton Eric Thomas Instant message communication system for providing notification of one or more events and method therefor
CN1984091A (zh) * 2002-05-01 2007-06-20 摩托罗拉公司 用于提供一或多个事件的通知的即时消息通信系统及其方法
US20070010794A1 (en) * 2002-11-01 2007-01-11 Mitchell Dann Devices and methods for endolumenal gastrointestinal bypass
US8667480B1 (en) * 2010-04-19 2014-03-04 Google Inc. Automatically updating browser extensions, and applications thereof
CN103168325A (zh) * 2010-10-05 2013-06-19 西里克斯系统公司 用于本地用户体验的显示管理
US9432726B2 (en) * 2011-08-16 2016-08-30 Destiny Software Productions Inc. Script-based video rendering
US20130283139A1 (en) * 2012-04-19 2013-10-24 Microsoft Corporation Managing web extension through manifest file
CN104704448A (zh) * 2012-08-31 2015-06-10 思杰系统有限公司 本地和远程计算环境之间的反向无缝集成
CN104881601A (zh) * 2015-06-17 2015-09-02 北京奇虎科技有限公司 悬浮窗显示设置、控制方法和装置
CN105204744A (zh) * 2015-09-28 2015-12-30 北京金山安全软件有限公司 一种启动应用程序的方法、装置及电子设备
CN105373291A (zh) * 2015-11-11 2016-03-02 北京麒麟合盛网络技术有限公司 一种界面切换方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108282473A (zh) * 2018-01-17 2018-07-13 新联智慧信息技术(深圳)有限公司 云存储命令管理方法及系统
CN108282473B (zh) * 2018-01-17 2021-01-26 新联智慧信息技术(深圳)有限公司 云存储命令管理方法及系统

Also Published As

Publication number Publication date
WO2016176159A1 (en) 2016-11-03
EP3289451A1 (en) 2018-03-07
US20160313958A1 (en) 2016-10-27

Similar Documents

Publication Publication Date Title
US11003630B2 (en) Remote access of metadata for collaborative documents
US10762277B2 (en) Optimization schemes for controlling user interfaces through gesture or touch
US10025758B2 (en) Support for non-native file types in web application environment
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
US11449348B2 (en) Pre/post deployment customization
TWI536240B (zh) 用戶端應用程式與網頁整合
KR20140125361A (ko) 웹 애플리케이션에서의 협업 통신 기법
JP2014512037A (ja) アプリケーションプログラムの状態モデルを提供するための方法およびシステム
US10831331B2 (en) Window control for simultaneously running applications
CN105493074A (zh) 用于生成动态定制上下文敏感的帮助的方法
CN108140174A (zh) 针对通信中对象的对话和版本控制
CN110168496A (zh) 用于应用呈现的方法和系统
CN109564517A (zh) 将被本地删除的内容留存在存储服务处
CN107533425A (zh) 跨平台命令可扩展性
CN103412704B (zh) 用于通过姿势或触摸控制用户界面的优化方案
CN108780400A (zh) 数据处理方法及电子设备
CN105518618A (zh) 配置成将针对视觉元素的输入路由到图形框架的输入对象
EP2810179B1 (en) Method and system for implementing a common data interface to web services
US8719704B2 (en) Seamless integration of additional functionality into enterprise software without customization or apparent alteration of same
US20190227678A1 (en) Providing document feature management in relation to communication
US20160313990A1 (en) Extensibility bundles for a cloud and devices suite
US11962280B2 (en) Synchronized controller
US10402035B1 (en) Content-driven orchestration of multiple rendering components in user interfaces of electronic devices
US8065351B2 (en) Default location that may be dynamically changed
US10602332B2 (en) Programming organizational links that propagate to mobile applications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20180102