Alfred-workflow-js

举报
西魏陶渊明 发表于 2022/09/25 02:56:48 2022/09/25
【摘要】 # 1. 基本运行 var AlfredNode = require('alfred-workflow-nodejs');var actionHandler = AlfredNode.actionHandler;var workflow = AlfredNode.workflow;var Item = AlfredNode...

# 1. 基本运行


    
  1. var AlfredNode = require('alfred-workflow-nodejs');
  2. var actionHandler = AlfredNode.actionHandler;
  3. var workflow = AlfredNode.workflow;
  4. var Item = AlfredNode.Item;
  5. (function main() {
  6. actionHandler.onAction("action1", function(query) {
  7. // your code to handle action 1 here
  8. });
  9. actionHandler.onAction("action2", function(query) {
  10. // your code to handle action 2 here
  11. });
  12. actionHandler.onMenuItemSelected("action2", function(query, selectedTitle, selectedData) {
  13. // your code to handle manu item selected of action 2 here
  14. });
  15. AlfredNode.run();
  16. })();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

# 2. 日志打印

console.warn("action1, 参数:" + query)
   
1

# 3. 菜单

使用脚本当使用tab键,会进行跳转的操作。


    
  1. //输入tab键会把上一个选中的参数翻到这里
  2. actionHandler.onMenuItemSelected("action1", function (query, title, data) {
  3. console.warn("data:" + data)
  4. console.warn("title:" + title)
  5. console.warn("query:" + query)
  6. var item1 = new Item({
  7. title: "Item 1 of " + title,
  8. arg: "item 1 of " + title + " which has alias ",
  9. subtitle: "data", // we can get data of selected item
  10. valid: true
  11. });
  12. var item2 = new Item({
  13. title: "Item 2 of " + title,
  14. arg: "item 2 of " + title + " which has alias ",
  15. subtitle: data,
  16. valid: true
  17. });
  18. workflow.addItem(item1);
  19. workflow.addItem(item2);
  20. var item3 = new Item({
  21. title: "Item 3 of " + storage.get("key1"),
  22. arg: "item 3 of " + title + " which has alias ",
  23. subtitle: data,
  24. valid: true
  25. });
  26. workflow.addItem(item3);
  27. var item4 = new Item({
  28. title: "Item 4 of " + storage.get("key2").name,
  29. arg: "item 4 of " + title + " which has alias ",
  30. subtitle: data,
  31. valid: true
  32. });
  33. workflow.addItem(item4);
  34. workflow.feedback();
  35. });
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

# 4. 使用本地缓存进行CURD


    
  1. var AlfredNode = require('alfred-workflow-nodejs');
  2. var actionHandler = AlfredNode.actionHandler;
  3. var workflow = AlfredNode.workflow;
  4. var Item = AlfredNode.Item;
  5. workflow.setName("example-alfred-workflow-using-nodejs");
  6. //类似本地的缓存
  7. var storage = AlfredNode.storage;
  8. var storage = AlfredNode.storage;
  9. storge.set("key", "value");
  10. storage.set("key", {name: "node"}, 1000);
  11. storage.get("key");
  12. storage.remove("key");
  13. storage.clear();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

# 5. 获取Alfred-workflow中的配置


    
  1. //获取系统外部配置
  2. console.warn("系统环境变量:" + utils.envVars.get("outSetting"))
1 2 3

# 6. 异常图标

可以是图片地址,也可以是系统icns地址

(ACCOUNT, BURN, CLOCK, COLOR, EJECT, ERROR, FAVORITE, GROUP, HELP, HOME, INFO, NETWORK, NOTE, SETTINGS, SWIRL, SWITCH, SYNC, TRASH, USER, WARNING, WEB)


    
  1. icon: AlfredNode.ICONS.INFO
  2. icon: AlfredNode.ICONS.ERROR
1 2 3 4

# 7. 传递给下一个的变量

AlfredNode.utils.generateVars({arg: 'xyz', variables: {key: value}};
   
1 2

# 8. 获取mac的钥匙串


    
  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. });
1 2 3 4 5 6 7

# 9. 自动黏贴APP中

文章来源: springlearn.blog.csdn.net,作者:西魏陶渊明,版权归原作者所有,如需转载,请联系作者。

原文链接:springlearn.blog.csdn.net/article/details/125858059

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。