Chinaunix首页 | 论坛 | 博客
  • 博客访问: 192517
  • 博文数量: 31
  • 博客积分: 2595
  • 博客等级: 少校
  • 技术积分: 334
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-28 16:03
个人简介

知行合一

文章分类

全部博文(31)

文章存档

2015年(1)

2014年(1)

2010年(9)

2009年(20)

我的朋友

分类: 系统运维

2009-06-08 23:43:21

注:以下文章如需转载,请注明所属作者,转载地址,谢谢!

3wave扩展(wave extensions

什么是wave扩展?

Wave扩展是一种增强wave的功能性的方法。目前,wave API只支持下面的扩展:

l         Robots:构建机器人扩展可以使得一些普通的任务自动化完成。与真人相比,机器人是软件式的自动化wave参与者。

l         Gadgets:构建配件扩展能够提供给使用者一种新的交互方式。配件(gadgets)提供一种方法使得可以在wave中运行小程序。

 

我应该使用何种扩展?

机器人和配件并不是相互排斥的。你可以同时使用它们。但是他们确实有不同的存在目的:

l         机器人是wave上面的一个自动化的参与者。机器人是运行在“云”里的应用程序,并且能够在wave里修改其自身的状态。它可以读取其加入的wave中的内容,修改wave的内容,添加或删除参与者,并且还能创建blips和新的waves。机器人由事件激发其动作。举个例子来说,机器人可以将wave上的内容发布到公共的blog站点并可以使用使用者的评论来更新wave

l         配件是运行在client端的一个小的应用程序。Wave是配件的拥有者,并且所有的wave上面的参与者共享同一个配件状态。一个配件唯一响应的事件就是它自己状态对象的变化以及wave中的参与者的变化(譬如,参与者的加入和退出)。配件对wave自身没有影响。Wave配件并不是一个典型的成熟的应用程序,而只是一些小的可以帮助改进某些类型的会话的附加软件。例如,一个wave可以包含一个sudoku的配件,从而可以让参加解谜对抗的参与者看到谁能够首先解决难题。

下面的表总结了他们的不同:

Robot

Gadget

运行在“云”上

运行在客户端

对于每个wave来说一个指定的机器人只是一个实例。 请记住,机器人就像是wave中的一个参与者, 所以每个参与者(机器人)都是一个实例,但是一个wave可以有多个参与者(机器人)。

每个wave多个实例。

能够修改wave并且可以进行如真实的参与者相同的操作。

不能修改wave,并且wave对其暴露的也有限。只能够侦测到wave的参与者的改变。

可以修改配件

不能修改机器人,没有办法知道机器人的存在。

 

我如何给扩展打包?(How Do I Package an Extension?)

这一节描述了如何去打包一个扩展。

扩展表单(Extension Manifests

扩展表单是XML的文件,其定义了扩展是如何融进Google Wave的客户端的。表单包括两个部分:钩子(hooks)和动作(actions)。钩子告诉客户端扩展怎样以及在什么地点融进其中,动作则定义了当扩展使用时会发生什么。

例如,一个典型的钩子就是在Toolbar上加入一个按钮。下面是其代码:

   
         description="Click to insert the Are You In? gadget."    imageUrl=""/>
   
 

这个简单的表单用声明location=”Toolbar”表明它将被安装在Toolbar上面,它包含一个要添加到Toolbar上的图标的URLimgUrl)。目前,有效的location选项只有ToolbarNewWaveMenu。每一个location都有一个上下文(context)与之相关联。Toolbar拥有”editor”上下文,而NewWaveMenu具有“global”上下文。这对于表单使用的动作(actions)是很重要的。InsertGadget动作只工作在“editor”上下文中,而createNewWave则只工作在“global”上下文。

这儿是使用global上下文的一个例子:

   
         description="Creates a new Twitter wave."/>
   
   
   

这个扩展将作为一个定制的选项被加入NewWaveMenu作为参与者。

扩展表单是预览XMLpreview XML)。将来会被延伸以支持更多的动作。这儿只是目前所采用的模式。

安装扩展(Installing an Extension

每一个用户帐号包含一个特殊的wave,这个wave包含你目前注册的所有的扩展。当前,可以通过URL引用唯一的扩展来进行处理。作为这方面的应用,你的扩展表单对于使用该扩展的wave客户端来说必须是公开地址的。虽然你可以直接修改这个wave,但是不是必须的。作为一种替代方案,你可以使用extension installer部件来安装你的扩展(并与其他人分享之!)

要安装一个扩展:

1.  创建一个新的wave

2.  选择Debug > Add Extension Installer

3.  Insert Extension Installer对话框中,输入一个扩展表单的URL,如果有,还可以输入一个扩展图片的URL。如果你指定了一张图片,它将被包含在显示于blip中的安装图像之中。

4.  点击Done提交blip。你必须在点击Install之前点击Done

5.  点击Install按钮,该按钮将添加扩展到你设置的wave.

为了同其他人分享扩展,可以简单的添加一个人到wave中作为一个参与者。之后,那个人同样可以像变魔术一样在他自己设置的wave中安装该扩展。

例子(Example

这儿是你可以安装和一试的扩展:

l         扩展表单:

l         扩展图片:

这个扩展添加了一个按钮到Toolbar,让你可以添加“Where Are You”配件到任何wave。该配件可以让wave参与者将他们的位置放到地图上。

要安装这个扩展,请遵照Installing Extensions进行操作。一旦安装上,你就可以创建一个新的wave,然后你将能够在你创建的waveToolbar上看到“Where Are You?”配件图标。




阅读(1276) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~