从Windows 键盘流快速启动器收集继续讨论:
啃了一两天文档( Flow Launcher - Documentation ),发现这东西有点意思,我这篇不是文档,但看完以后应该可以快速上手开发,因为这东西实在是太简单了。
JavaScript / TypeScript / Python 都差不多,我用的 JS。
- 它会在每次查询时调用你的脚本,就是命令行调用。JS 以 node.js 的方式调用
- 它把参数以 json 的形式传给你的脚本,解析一下就行了
JSON.parse(process.argv[2])
- 获得一个对象,其中三个属性:
method
{ string } 通过判断这个参数的值,来决定你的脚本要做什么,如果值是query
,那么当前是查询parameters
{ array } 参数,如果是查询,这里第一项就是查询的内容。settings
{ object } 插件设置
- 插件信息在
plugin.json
文件中设置ActionKeyword
的值是触发关键词,如果用"*"
表示所有查询都触发,如果有多个出发关键词则用ActionKeywords
字段,后续给出一个关键词数组。
- 插件设置用
SettingsTemplate.yaml
文件定义,详细看官方文档,基本就是 HTML 表单项,只是描述格式换成了 yaml。所以也做不到某些官方插件的复杂度,以及不太好做动态。 - 脚本在命令行的输出应该是 json 格式(附在下方,其中的
method
如果是Flow.Launcher.ShowMsg
形式就是调用 Flow Launcher 的 API,parameters
的内容作为参数。否则一般用来显示在查询结果中,然后点击就再次调用你的脚本,这时候就可以根据method
的值进行不同的操作了。 - 因为是每次调用脚本,基本上修改以后立刻生效
- 如果是基础信息修改可以用命令
rpd
(Reload Plugin Data)热重载
{
"result": [
{
"Title": "",
"Subtitle": "",
"JsonRPCAction": {
"method": "",
"parameters": []
},
"IcoPath": "",
"score": 0
}
]
}