如何编写 Alfred 使用的alfred workfloww,需要掌握哪些知识

等了那么久,Alfred用户手册第二篇也终于出来了!上一篇中详细介绍了Alfred的基本查询功能和一些收费功能。第一次写这么长的教程收到了不少读者好评也给了很多意见。有细心的读者还给我提交了Alfred的Bug,为了给读者一个答复我用非常蹩脚的英语给Alfred官网提交了Bug很快便得到了回复,具体Bug信息可以参见的评论。
本篇将着重介绍Alfred杀手级功能WorkFlows。个人认为这个功能才是Alfred的核心功能,有了这个其它那些免费功能只能打打酱油了。说的那么厉害那么WorkFlows到底能做什么的呢?在Alfred官网是这么介绍的:
From quick file filters to advanced scripts, you can control your Mac, other applications, web services and more.
我们可以通过高级脚本语言来快速过滤文件、控制Mac、应用程序、web services甚至更多。有的人就想了这些貌似免费版也能做啊?注意是&高级脚本语言&免费版只是事先定制好的一些功能,而WorkFlows则是可以通过用户自己写脚本语言来定制搜索和其它一些高级功能。查了下WorkFlows支持bash、zsh、php、ruby、python、perl、osascript这些脚本语言。看到这些估计很多程序猿们已经开始蠢蠢欲动了吧。
支持脚本语言还只是WorkFlows的一部特性,难道不懂代码的小白们就用不了了吗?非也非也。我们再来看看WorkFlows的实现机制吧,在官网上还有这么一段介绍:
Put simply, workflows allow you to connect triggers and keywords to actions and outputs. Once they’re connected together, you’re up and running!
从这段话中我们可以看到实现WorkFlows的四个基本对象:trigger、keyword、action、output。Alfred通过将这四个基本对象合理connect便能实现各种高级功能。就好像乐高玩具,我们可以通过各种零件组合在一起组装成各种有趣的形状。可以夸张的说WorkFlows没有什么做不到只有你想不到的。下面是我画的一张思维导图,下面我便通过这张图由浅入深一一介绍WorkFlows的方方面面。
1. Examples
Alfred安装完后内置了7个例子。我们先不逐一介绍WorkFlows的四个基本对象,那样太理论化了。对于小白用户我们可以通过研究学习这几个例子来了解WorkFlows的使用方法,并从例子里逐步了解这四个基本对象。
1.1. Should I watch this movie
我们通过点击“+”号,选择“Examples”-“Should I watch this movie”就添加成功了,其它的例子添加方法一样。我们双击名字可以打开WorkFlows的一些属性设置,这个界面每个WorkFlows都是一样的。
其中可以看到有以下这些属性:&Workflow Name名字&Description功能描述&Category类型,有未分类的、工具类、互联网类、生产率类的&icon将图片拖进框内,为WorkFlows设置图标&Bundle
id为WorkFlows取一个唯一的可辨识的ID&Created by作者&Website主页&Readme如果还有其它的内容需要填写我们可以都填写在这里
从功能描述中我们可以知道,这个WorkFlow的功能是通过关键字“movie”加上电影名字然后系统会打开浏览器并分别从Youtube查询电影预告、从IMDB查询电影详细信息、从Rotten Tomatoes查询电影评分。除了基本设计外,我们下面来详细介绍这个WorkFlow的“组装”界面:
从上图中我们可以看到这个WorkFlow由2个基本对象组成:1个Input和3个Action。其中使用了Input的Keyword控件(姑且这么叫吧),和Action的Default
Web Search和Open URL控件,并且Input和Action之间用3条线连接了起来。联系前面说到的功能描述是不是觉得这个“组装台”界面很形象啊!我们再点开每个“零件”看看里面的设置又是怎样的。
点击Keyword控件,我们可以看到如上界面,主要可设置关键字、是否需要参数、查询标题、查询说明。
点击其中一个Default Web Search&控件,我们可以看到如上界面,主要可以设置搜索的网站和打开的浏览器。这里的搜索网站都是Alfred预设的,可当我们从中找不到我要搜索的网站怎么版那么就要用到下面一个控件了。
Open URL&控件就可以自定义查询网站,打开该控件我们可以设置URL。URL由网站的搜索URL+{query}关键字组成。如果不知道搜索URL是多少,我们可以先使用一次网站的搜索功能然后就能在浏览器的地址栏上找到该网站的搜索地址了。还能设置将查询内容编码成UTF8格式、将查询内的空格变成+号。
讲到这里聪明的读者一定会想以上3个网站在天朝都被墙了,这个WorkFlow没法用啊,不如把豆瓣等国内的电影网站搜索功能给加上去呢。那么我们就动动手一起把豆瓣电影搜索给加上去吧。很简单我们只要再加入一个Action就可以了,不过在Default
Web Search控件的列表里找不到豆瓣,那么我们只能用Open URL了。点击“+”号依次选择“Action”-“Open URL”,然后“组装台”上就多了一个控件了,我们将Keyword控件和新加入的Open
URL控件先连接起来,然后再双击该控件,然后在URL中输入“/subject_search?search_text={query}”其它设置默认即可。至于这个搜索连接是怎么获得的呢?其实很简单我们只要使用网站的搜索功能后就能在浏览器的地址栏上就能看到搜索连接了。
设置完后我们来试用一下,在Alfred搜索界面中输入“movie star wars”后浏览器会同时打开4个网站,而第四个网站就是我们新建的豆瓣电影的搜索结果了。是不是突然觉得建一个WorkFlow其实很简单呢?
1.2. Google Suggest
这个WorkFlow的功能是让我们在使用Google查询功能时能够使用只有在网页端查询才有的Google Suggest功能。就是在每次输入查询内容时系统会列出一些候选的查询关键字供用户选择。当然由于我们伟大的qiang存在无法正常使用该功能,所以大家就看看我的截图吧。 当然这个不是我要说的重点,其实这个WorkFlow是整个使用手册里最难入门的一个了,因为它里面用到了Script
Filter控件。这个控件是需要我们编写代码才能实现相关功能的,一旦掌握了这个技巧,那么Alfred基本就无所不能了。不过如果是代码小白可以直接跳过这一章了,当然你想折腾下那就接下去看吧。前面我也说过了Alfred支持许多脚本语言,由于本人对Python比较熟悉所以整篇文章就以Python为主了。 首先我们先来分析下这个例子(这个例子里使用的脚本语言是PHP)
从上图中我们可以知道这个WorkFlow使用了一个Script Filter控件,并将查询的结果传递给Default
Web Search控件。然后我们双击Script Filter控件看看里面是怎么设置的。
Keyword关键字&Placeholder
TitleWorkFlow使用时的标题&Placeholder SubtextWorkFlow使用时的提示文字&Please
Wait SubtextWorkFlow在查询时提示的文字&Language使用的脚本语言&Escaping在脚本内需要过滤的一些特殊字符防止脚本执行时受干扰(这个有疑问?)&Script脚本
别的设置其实都比较简单,关键就在Script这块了,我们可以看到代码第一行有一句&require_once('workflows.php');&&这里是在执行脚本之前需要先倒入workflows.php这个文件,这个文件是Alfred提供给我们封装了所有我们要编写WorkFlow方法的库文件。这个文件放在哪里呢?我们点击Open
workflow folder就能看到了。
上图中这个是PHP版本的库文件,当然其他的脚本语言也有对应的库文件,我们可以在里找到。 然后我们来简单介绍下这段代码主要做了什么吧 - 程序访问了Google
Suggest的API并将在Alfred输入框输入的查询内容传入API的传入参数内 - 然后开始逐一解析API返回回来的结果,这里返回结果格式是XML的 - 最后调用WorkFlow库内的方法将内容组织成Alfred的返回结果(result函数),主要内容有标题、标题下面的提示文字、图标、传出参数(供其他控件调用)
上面说了那么多大家肯定还是一头雾水,不如我们直动手来的直接。我们就做一个豆瓣图书查询的WorkFlow吧,先来看看我研究了几天的成果吧。
这个WorkFlow的功能是输入douban关键字后我们输入任意需要查询的图书名字,Alfred为我们列出与名字相匹配的图书结果。结果中我们可以了解到图书的书明、作者、出版社、价格、评分。并且选中某本书后系统会打开浏览器直接跳转到该书的详细页面。好,下面开始动手! 首先添加一个Blank WorkFlow,设置如下图
WorkFlow NameWorkFlow的名字&Description功能描述&Category类别&Bundle
idWorkFlow的一个唯一ID号,最好以你自己的域名+WorkFlow名字&Created By作者&Website作者的网站
设置好后,Alfred就会为WorkFlow创建一个文件夹并且生成一个名叫info.plist的文件,在使用WorkFlow库的时候会调用这个文件,所以一定要先做这一步。然后从GitHub上Python版的WorkFlow库,并解压到info.plist同一个目录下。然后再新件一个douban.py脚本文件。最后文件结构如下图
然后就开始写代码了,打开douban.py输入如下代码,具体代码可以访问我的。
上面代码中豆瓣图书查询API在豆瓣开发者页面内有相关的文档,每个接口的调用方法和返回结果都有一一说明的,这里就不展开了,大家可以去了解详细内容。另外上面写好的代码是可以直接在控制台或者在编辑器内调试运行的,在控制台内我们只要输入python
douban.py 查询内容&就可以看到执行结果了,本人使用的是Pycharm可以设断点调试比直接写在Alfred的Script内要方便多了。好了接下来就要告诉Alfred怎么调用我们写好的代码了。首先在我们的WorkFlow界面内增加一个Script
Filter控件,具体设置如下
其中要注意的就是因为我们的代码是直接写在脚本文件内的与之前例子写在Script内不同,所以我们这里要在Script内写python douban.py &{query}&&并且Language选择/bin/bash保存后我们就可以直接使用了。在Alfred搜索界面输入douban
图书名就能在列表中看到搜索结果了。如果只是看看简单的图书介绍那么到这里就结束了,不过如果我们想选中某本书并且打开浏览器看看图书的详细信息的话就要用到Action控件了。我们还是在WorkFlow界面上新增一个Open
URL的Action控件。然后在控件的配置界面里将URL设置成/subject/{query}&,在这里的{query}就是前面的Script
Filter控件代码中的arg=post['id']&这个值。 最后一步不但简单也很形象,我们要将刚才创建的两个控件链接起来,我们要将Script
Filter控件返回的参数传递给Open Url控件,Open
URL控件根据接受到的参数打开浏览器并打开相对应的链接。刚建完的两个控件是相互独立的,如下图
我们要做的就是将鼠标移动到Script Filter控件上,然后就能看到控件右边会有一块突出的部分,然后鼠标按住突出部分并移动到Open
URL控件边缘后放开鼠标就将两个控件连接起来了。最终效果如下图
通过以上这些我们基本已经从无到有创建了一个可用的WorkFlow了,其实这个WorkFlow我们还可以继续扩展,比如加入电影搜索,音乐搜索等其他更丰富的功能。而且我想通过以上的介绍大家应该也已经对Alfred的WorkFlow有更深入的了解了吧!最好的学习办法就是动手实践,我建议大家可以拿自己熟悉得脚本语言和熟悉的Web API来做一个WorkFlow。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:19627次
排名:千里之外
原创:18篇
转载:153篇
(5)(21)(3)(4)(2)(2)(8)(3)(16)(5)(9)(23)(3)(1)(54)(12)如何编写 Alfred 使用的 Workflow,需要掌握哪些知识_百度知道
如何编写 Alfred 使用的 Workflow,需要掌握哪些知识
包括,就可以开始编写 Alfred Workflow 了, Apple Script只要开发者会使用上面任意的语言, Ruby, Perl。为了方便开发者了解Workflow 的运行机制:bash, PHP, zsh, Python,官方在 App 中内置了很多 范例他们大部分是使用一门了解的语言来书写的
其他类似问题
为您推荐:
workflow的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁有没有alfred workflow的编写的教程。我想做一个百度,维基百科的workflow 应该怎么编写。
因为看到 回答的截图里有个自己写的Farbox同步 workflow,所以忍不住回答一下。我认为Alfred最成功的地方,是为繁琐的命令执行操作,提供了一种无比优美简洁的使用方式,而且还提供了门槛很低的扩展框架,让用户充分发挥自己的想象力。回到问题本身,分享下我自己的经历。我学习的方式主要通过参考别人已有的workflow。workflow具体做的事情可能千差万别,但是有很多workflow的实现逻辑是相似的,比如我之前想写一个workflow用于切换mac的全局proxy: ,就很大程度参考了另一个用于切换Wi-Fi开发的workflow:。Alfred有个很好的地方,就是你都能在alfred中看到你所使用workflow的具体实现,也就是它们对你都是开源的,至少我用过的workflow都可以。大部分workflow直接在alfred的workflows选项卡下都能看到,有部分workflow可能调用一些脚本文件,你也可以进入对应workflow文件夹下打开具体的脚本文件(可以通过右键workflow -& Show in Finder 打开workflow的文件夹)我认为理解Afred workflow的几个组成部分是入门的关键,包括Triggers、Inputs、Actions、Outputs。Triggers不是必备的,常用来设置快捷键开启某个Workflow。Inputs定义了你在Alfred输入框中输入对应的keyword相应的显示内容。以我常用的 以我常用的
的有道翻译workflow为例,输入“yd workflow”下面所显示的结果都是Inputs中定义的。Inputs中以一个约定的xml格式输出文本就能被Alfred正确显示,上图的显示对应的xml代码为:&?xml version="1.0"?&
&item uid="1." arg="工作流 ['wə:k,fləu]" valid="yes" autocomplete=""&
&title&工作流 ['wə:k,fləu]&/title&
&subtitle&翻译结果&/subtitle&
&icon&icon.png&/icon&
&item uid="1." arg="n. 工作流,工作流程" valid="yes" autocomplete=""&
&title&n. 工作流,工作流程&/title&
&subtitle&简明释义&/subtitle&
&icon&icon.png&/icon&
&item uid="2." arg="工作流, 工作流技术, 工作流程" valid="yes" autocomplete=""&
&title&工作流, 工作流技术, 工作流程&/title&
&subtitle&网络释义:Workflow&/subtitle&
&icon&icon.png&/icon&
&item uid="3." arg="工作流管理, 流程管理, 工作流程管理" valid="yes" autocomplete=""&
&title&工作流管理, 流程管理, 工作流程管理&/title&
&subtitle&网络释义:workflow management&/subtitle&
&icon&icon.png&/icon&
&item uid="4." arg="工作流程动作, 工作流程操作, 工作流操作" valid="yes" autocomplete=""&
&title&工作流程动作, 工作流程操作, 工作流操作&/title&
&subtitle&网络释义:workflow action&/subtitle&
&icon&icon.png&/icon&
因为中文字符有转码,所以看起来有点像乱码:( ,这里跟微信公众帐号的工作方式很想吧。Actions对应选中项后执行的操作,比如在我的Proxy Toggle中,用户执行全局代理切换的工作脚本就写在actions中。Outputs一般用于显示操作的结果,提示操作成功与否,以Post Notification较为常见,通过Mac的notification center提示。以有道翻译为例,workflow中各部分示意图如下:至于调试,貌似也用不到什么技巧,我都是测过脚本语法没问题后直接在本机上执行。希望以上能对想入门的同学有帮助,这里有我自己写或修改过的几个workflow ,都是比较简单的。我觉得workflow实现复杂与否不重要,关键在于使用频繁,是否能提高效率。关键还是多实践,了解workflow工作方式之后,写workflow也就跟开发其他脚本一样了。
官方并没有给出详细的 Alfred Workflow 撰写教程,原因是写一个 Workflow 实际上门槛是很低的,这一点也类似微信公众账号的易搭建性。&br&可以看到我所维护的 &a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Alfred 2 Workflow List&i class=&icon-external&&&/i&&/a& 已经收集到来自全世界开发者的400多个 Workflows,他们大部分是使用一门了解的语言来书写的。&br&包括:&br&&div class=&highlight&&&pre&&code class=&language-text&&bash, zsh, PHP, Ruby, Python, Perl, Apple Script
&/code&&/pre&&/div&&br&&img src=&/4b404d9e25267add858f11ad2c35792c_b.jpg& data-rawwidth=&606& data-rawheight=&440& class=&origin_image zh-lightbox-thumb& width=&606& data-original=&/4b404d9e25267add858f11ad2c35792c_r.jpg&&&br&只要开发者会使用上面任意的语言,就可以开始编写 Alfred Workflow 了。为了方便开发者了解Workflow 的运行机制,官方在 App 中内置了很多 范例:&br&&img src=&/86d2fc32ed9879cedbb7fa396ae00d72_b.jpg& data-rawwidth=&892& data-rawheight=&380& class=&origin_image zh-lightbox-thumb& width=&892& data-original=&/86d2fc32ed9879cedbb7fa396ae00d72_r.jpg&&&br&有了这些 Examples 就能了解到 Workflow 的运行机制和书写方法。&br&&br&总的来说,多看看其他 Workflow 的源码(都是开源的,大部分Github上有托管),就可以快速上手,开始行动吧。&br&&br&PS1:所有已经提交到 List 里的 Workflow 源码都可以在 Github 里查到:&br&&a href=&///?target=https%3A////tree/master/Sources/Workflows& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/hzlzh/Alfred&/span&&span class=&invisible&&/tree/master/Sources/Workflows&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&PS2:官方的论坛里,全球的开发者和用户都很活跃,如果你是普通用户,也可以把你的好 idea 发出来,很多开发者顺手就给做出来了。&br&&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Alfred App Community Forum&i class=&icon-external&&&/i&&/a&
官方并没有给出详细的 Alfred Workflow 撰写教程,原因是写一个 Workflow 实际上门槛是很低的,这一点也类似微信公众账号的易搭建性。可以看到我所维护的
已经收集到来自全世界开发者的400多个 Workflows,他们大部分是使用一门了解…
附带我写的wiki查询workflow代码,py版本,代码简化过,import部分可能有多余内容&br&用了python的alfred库:&a href=&///?target=https%3A///nikipore/alfred-python& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&nikipore/alfred-python · GitHub&i class=&icon-external&&&/i&&/a&&br&&br&效果:&br&&br&&img src=&/66ebede485aaf2e8447330bdd7d720ad_b.jpg& data-rawwidth=&649& data-rawheight=&460& class=&origin_image zh-lightbox-thumb& width=&649& data-original=&/66ebede485aaf2e8447330bdd7d720ad_r.jpg&&&br&&br&代码:&br&&br&&br&&div class=&highlight&&&pre&&code class=&language-text&&# -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib
import json
import HTMLParser
import alfred
def unescape_html( html ):
html_parser = HTMLParser.HTMLParser()
return html_parser.unescape( html )
def search_wiki( query ):
args = { &action&:&query&, &list&:&search&, &srprop&:&timestamp&, &format&:&json&, &srsearch&:query }
response = json.loads( urllib2.urlopen(&https://zh.wikipedia.org/w/api.php?&+urllib.urlencode(args)).read() )
wiki = response[&query&][&search&]
result = []
default_title = u&更多详细结果……&
if len(wiki) == 0:
default_title = u&找不到结果,请使用网页查询……&
default_link = &https://zh.wikipedia.org/w/index.php?& + urllib.urlencode({&search&:query})
result.append( alfred.Item( {&uid&:alfred.uid(&0&), &arg&:default_link}, default_title, default_link, (&wiki.png&) ) )
for w in wiki:
link = u&https://zh.wikipedia.org/wiki/& + urllib.quote( w[&title&].encode(&utf8&) )
result.append( alfred.Item( {&uid&:alfred.uid(w[&title&]), &arg&:link},
unescape_html(w[&title&]), link, (&wiki.png&)) )
return result
def main():
( param, query ) = alfred.args2()
result = search_wiki( query )
alfred.write( alfred.xml(result) )
if __name__ == &__main__&:
&/code&&/pre&&/div&
附带我写的wiki查询workflow代码,py版本,代码简化过,import部分可能有多余内容用了python的alfred库:效果:代码:# -*- coding: utf-8 -*-
import urllib2
import urllib
import cookielib
import json
import HTMLPa…
已有帐号?
无法登录?
社交帐号登录
code my future如何编写 Alfred 使用的 Workflow,需要掌握哪些知识_百度知道
如何编写 Alfred 使用的 Workflow,需要掌握哪些知识
Outputs,用户执行全局代理切换的工作脚本就写在actions中.0&quot,所以看起来有点像乱码;&#47, 工作流程&quot, 工作流技术;
& Show in Finder 打开workflow的文件夹)
我认为理解Afred workflow的几个组成部分是入门的关键;
&lt,就是你都能在alfred中看到你所使用workflow的具体实现,比如在我的Proxy Toggle中、Aitem uid=&quot。 我学习的方式主要通过参考别人已有的workflow,常用来设置快捷键开启某个Workflow,包括T工作流 [' autocomplete=&wəsubtitle&
&网络释义;/ &yes&quot,版权属于原作者:k;&4;title&item&gt,比如我之前想写一个workflow用于切换mac的全局
&lt,这里跟微信公众帐号的工作方式很想吧;subtitle&
以有道翻译为例?&icon&gt。workflow具体做的事情可能千差万别;;翻译结果&title&gt,以Post Notification较为常见。Inputs中以一个约定的xml格式输出文本就能被Alfred正确显示;&#47, 工作流程管理&工作流;title&;2;item&title&item&items& arg=&subtitle&
& autocomplete=&yes&quot,上图的显示对应的xml代码为;
&&gt,工作流程& valid=&quot,有部分workflow可能调用一些脚本文件;//&#47.&&网络释义,输入“yd workflow”下面所显示的结果都是Inputs中定义的:Workflow&title&subtitle& arg=& arg=&
&lt,而且还提供了门槛很低的扩展框架;icon& autocomplete=&。 以我常用的 @icyleaf 的有道翻译workflow为例;/subtitle&gt:workflow management&items&gt,通过Mac的notification center提示; valid=&item uid=&icon&/1;item uid=&//icon&1. 工作流.png& valid=&subtitle&gt:
&/工作流管理;简明释义&/icon&gt  我认为Alfred最成功的地方, 流程管理;u]&lt。
关键还是多实践,但是有很多workflow的实现逻辑是相似的;subtitle&gt, 工作流程操作;subtitle&item&gt.&&gt,是否能提高效率;&u]&工作流;工作流程动作;3;/icon&gt.png&
&n;n;/title&gt,分享下我自己的经历.png&lt, 工作流程操作;
&icon&gt?xml version=&quot,关键在于使用频繁;1:Wi-Fsubtitle&gt。我觉得workflow实现复杂与否不重要。 Alfred有个很好的地方; autocomplete=&yes&quot:k;
因为中文字符有转码,都是比较简单的,workflow中各部分示意图如下;yes&//subtitle&gt,fləicon&gt,我都是测过脚本语法没问题后直接在本机上执行, 工作流技术,这里有我自己写或修改过的几个workflow 尝试给自己写AlfredW
&lt, 工作流程管理&lt。
Outputs一般用于显示操作的结果; arg=&quot。
希望以上能对想入门的同学有帮助;title&yes&quot,貌似也用不到什么技巧;icon,也就是它们对你都是开源的;
&lt,至少我用过的workflow都可以,flə arg=&quot:
至于调试, 流程管理, 工作流操作&quot.&quot,提示操作成功与否. 工作流;工作流程动作; autocomplete=&
&item uid=&quot:Proxy Toggle , 工作流程&lt。大部分workflow直接在alfred的workflows选项卡下都能看到。
Actions对应选中项后执行的操作。
Triggers不是必备的:( ;
&//item&title&网络释义;/工作流 [&#39。
Inputs定义了你在Alfred输入框中输入对应的keyword相应的显示内容;&#47:workflow action& & valid=&&title&gt.png&lt, 工作流操作&lt,提供了一种无比优美简洁的使用方式;title&w&#601,写workflow也就跟开发其他脚本一样了;
&icon&gt.&icon&gt。 转载仅供参考;工作流管理;&
&;/&gt.png&
& valid=&quot,就很大程度参考了另一个用于切换Wi-Fi开发的workflow,工作流程&item uid=&
&lt,了解workflow工作方式之后。
回到问题本身,让用户充分发挥自己的想象力,是为繁琐的命令执行操作;&&quot,你也可以进入对应workflow文件夹下打开具体的脚本文件(可以通过右键workflow -&gt
知道智能回答机器人
我是知道站内的人工智能,可高效智能地为您解答问题。很高兴为您服务。
其他类似问题
为您推荐:
workflow的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 alfred workflow 有道 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信