Script 1.8.1

Keyboard

原型:

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() 函数获取具体的错误信息。

示例:
//函数仅带一个 device 参数,函数 haveatry 如下所示:
haveatry=function(device) {
    device.send(sigmaConst.KEY_HOME);
}

//示例一:当用户点击 Ctrl+Alt+V 时,手机屏幕会自动跳到 HOME 页面。
//对仅带一个 device 参数的函数, Keyboard 的参数三 “dataParameters” 必须省略(就算有参数三也没意义,因为无法传入),所以 Keyboard 的定义方式如下:

h = new Keyboard('CA|V', haveatry);

//或者,您也可以将上面两句语句合并到一起,如下:
h = new Keyboard('CA|V', function(device) {Device.getMain().send(sigmaConst.KEY_HOME);});
//后面的示例均可使用这种缩写风格,不再赘述。

		

//函数带两个参数:第一个为 device ,第二个为 data ,函数 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);
        }
	}

//示例二:
//当用户点击 Ctrl+Alt+V 时,输出“data is 1”。,app 和 device 均为为 null,因此快捷键 Ctrl+Alt+V 总是有效。
h = new Keyboard('CA|V', trytrytry, {app:null, device:null, data:1});

//示例三:
//app 和 device 都不为空,则只有在指定的 device 上,并且前台 app 为 com.tencent.qqmusic 时,快捷键 Ctrl+Alt+U 才会发挥作用。	
h = new Keyboard('CA|U', trytrytry, {app:"com.tencent.qqmusic", device:Device.getMain(), data:{ field1:1, field2:2}});
		
//注意:
//我们强烈建议使用示例三的模式,这样可以避免进行过多的匹配操作,从而减轻对手机的压力。