Alfred-workflow-js
Alfred Plugin
1. 基本运行
javascript
1var AlfredNode = require('alfred-workflow-nodejs');
2var actionHandler = AlfredNode.actionHandler;
3var workflow = AlfredNode.workflow;
4var Item = AlfredNode.Item;
5
6(function main() {
7 actionHandler.onAction("action1", function(query) {
8 // your code to handle action 1 here
9 });
10 actionHandler.onAction("action2", function(query) {
11 // your code to handle action 2 here
12 });
13
14 actionHandler.onMenuItemSelected("action2", function(query, selectedTitle, selectedData) {
15 // your code to handle manu item selected of action 2 here
16 });
17
18 AlfredNode.run();
19})();
202. 日志打印
text
1console.warn("action1, 参数:" + query)3. 菜单
使用脚本当使用tab键,会进行跳转的操作。
javascript
1
2 //输入tab键会把上一个选中的参数翻到这里
3 actionHandler.onMenuItemSelected("action1", function (query, title, data) {
4 console.warn("data:" + data)
5 console.warn("title:" + title)
6 console.warn("query:" + query)
7
8 var item1 = new Item({
9 title: "Item 1 of " + title,
10 arg: "item 1 of " + title + " which has alias ",
11 subtitle: "data", // we can get data of selected item
12 valid: true
13 });
14
15 var item2 = new Item({
16 title: "Item 2 of " + title,
17 arg: "item 2 of " + title + " which has alias ",
18 subtitle: data,
19 valid: true
20 });
21
22 workflow.addItem(item1);
23 workflow.addItem(item2);
24
25
26 var item3 = new Item({
27 title: "Item 3 of " + storage.get("key1"),
28 arg: "item 3 of " + title + " which has alias ",
29 subtitle: data,
30 valid: true
31 });
32 workflow.addItem(item3);
33
34 var item4 = new Item({
35 title: "Item 4 of " + storage.get("key2").name,
36 arg: "item 4 of " + title + " which has alias ",
37 subtitle: data,
38 valid: true
39 });
40 workflow.addItem(item4);
41
42 workflow.feedback();
43 });4. 使用本地缓存进行CURD
javascript
1
2var AlfredNode = require('alfred-workflow-nodejs');
3var actionHandler = AlfredNode.actionHandler;
4var workflow = AlfredNode.workflow;
5var Item = AlfredNode.Item;
6workflow.setName("example-alfred-workflow-using-nodejs");
7//类似本地的缓存
8var storage = AlfredNode.storage;
9
10
11
12var storage = AlfredNode.storage;
13storge.set("key", "value");
14storage.set("key", {name: "node"}, 1000);
15storage.get("key");
16storage.remove("key");
17storage.clear();5. 获取Alfred-workflow中的配置

javascript
1
2 //获取系统外部配置
3 console.warn("系统环境变量:" + utils.envVars.get("outSetting"))6. 异常图标
可以是图片地址,也可以是系统icns地址
(ACCOUNT, BURN, CLOCK, COLOR, EJECT, ERROR, FAVORITE, GROUP, HELP, HOME, INFO, NETWORK, NOTE, SETTINGS, SWIRL, SWITCH, SYNC, TRASH, USER, WARNING, WEB)
text
1
2icon: AlfredNode.ICONS.INFO
3
4icon: AlfredNode.ICONS.ERROR7. 传递给下一个的变量


text
1AlfredNode.utils.generateVars({arg: 'xyz', variables: {key: value}};
28. 获取mac的钥匙串

text
1 var settings = AlfredNode.settings;
2 // 将账户密码添加到钥匙串
3 settings.setPassword("alfred-liuxin", "password");
4 // 获取mac的钥匙串中的,密码
5 settings.getPassword("alfred-liuxin", function(error, password){
6 console.warn("获取密码:" + password);
7 });9. 自动黏贴APP中
