Script 1.8.1

Keyboard

原型:

new Keyboard(shortcutCombination, function, dataParameters)

描述:

新建Keyboard对象,达到注册快捷键的目的

参数:

shortcutCombination: 定义组合键,格式为”控制键组合|字母键”。
    其中控制键组合为Ctrl/Alt/Shift的组合,分别用C/A/S表示Ctrl/Alt/Shift。
    字母键包括F1-F12在内的任意字母键。
    具体示例如”AC|A”,表示Alt+Ctrl+A。在Total Control启动后,点击Ctrl+Alt+A,就可以运行后面的function。

function: 一个用户自定义函数,该函数可以仅带一个device参数,或带两个参数:第一个为device,第二个为data。具体请参考后面的示例。

dataParameters: 可选参数。形如{app: 'com.tencent.mm', ‘device’:…, data: …}的对象,其中键值app对应的是应用程序包名,可以为null,也可以不赋值。如果app非空,则表示除非手机前台正在运行该app,否则function不会被调用;如果app为空,则表示无论手机前台运行的app是什么,function都将被执行。键值device对应的是要执行此shortcut的指定手机设备。键值data对应的是用户自定义对象,可以为空;如果data不为空,并且function具有两个输入参数,那么当快捷键被点击后,data对应的对象将作为参数,传递给function。具体请参考后面的示例。

返回值:

一个Keyboard对象
异常:lastError();

示例:
0个函数参数的示例:

	示例一 :
	
		haveatry=function(device) {
			device.send(sigmaConst.KEY_HOME);
		}
		对应于0个函数参数,Keyboard的参数三必须省略(就算有参数三也没意义,因为无法传入),所以Keyboard的定义方式如下:
		h = new Keyboard('CA|V', haveatry);

		您也可以将上面两句语句合并到一起,如下:
		h = new Keyboard('CA|V', function(device) {Device.getMain().send(sigmaConst.KEY_HOME);});

		后面的示例均可使用这种缩写风格,不再赘述。

		本例所实现的功能,就是当用户点击Ctrl+Alt+V时,手机屏幕会自动跳到HOME页面。


1个函数参数的示例:

	假设我们定义了如下这样一个函数trytrytry:
	trytrytry=function(device, x) {
		   if (x==1) {
				  print("data is 1");
		   } else {
				  print("x.device: " + x.device);
	 
				  print("x.field1: " + x.field1);
				  print("x.field2: " + x.field2);
				 
				  x.device.send(sigmaConst.KEY_HOME);
		   }
	}


	示例二:
	
		h = new Keyboard('CA|V', trytrytry, {app:null, device:null, data:1});
		此时app和device均为为null,因此快捷键总是有效。

	示例三:
	
		h = new Keyboard('CA|U', trytrytry, {app:"www.app.com", device:Device.getMain(), data:{ field1:1, field2:2}});
		此例中app和device都不为空,则只有在指定的device上,并且前台app为www.app.com时,快捷键才会发挥作用。

	注意:
	
		我们强烈建议使用示例三的模式,这样可以避免进行过多的匹配操作,从而减轻对手机的压力。