一、简介
- 真香定理又出现了,一开始看官方介绍模板插件,感觉也没有多好用,结果一用,真香。本节简单用一个实例,来介绍下模板插件的列表模式。
- 实例功能是:输入一个template的名字,自动帮我打开cocos studio的ui编辑器,并且打开这个template。(偷了个懒,该功能直接使用wox中自己实现的一个python脚本,wox也是不错的桌面工具,主要是使用python进行开发,感兴趣的可以阅读煎饼大佬的浅谈Wox插件的编写)
- 该python脚本主要是通过传入操作指令和template名来使用。
cmd = sys.argv[1]
if cmd == "add":
uiName = sys.argv[2]
openUi(uiName)
elif cmd == "clear":
clearUi()
二、列表模式的编写
- 首先要去掉plugin.js里的main字段,不使用入口html去配置插件前端。
{
"pluginName": "openY6ui编辑器",
"description": "打开y6ui编辑器",
"preload": "preload.js",
"version": "0.0.1",
"features": [
{
"code": "opui",
"explain": "打开ui编辑器",
"cmds":["opui"]
}
]
}
- 在preload.json配置模板插件,通过实现window.exports属性来配置,以下是具体代码:
let exec = require('child_process').exec
window.exports = {
"opui": { // 注意:键对应的是plugin.json中的features.code
mode: "list", // 列表模式
args: {
enter: (action, callbackSetList) => {
//选项条:进入插件时会出现以下配置的2个选项:openUI和clearUI
callbackSetList([
{
title: 'openUI',
description: '打开UI',
icon:''
},
{
title: 'clearUI',
description: '清掉缓存',
icon:'',
}
])
},
search: (action, searchWord, callbackSetList) => {
//选项条:子输入框输入时会出现以下配置的2个选项:openUI和clearUI
callbackSetList([
{
title: 'openUI',
description: '打开UI',
icon:'',
//这里给openUi的itemData加上搜索内容
searchWord : searchWord
},
{
title: 'clearUI',
description: '清掉缓存',
icon:'',
}
])
},
// 用户选择列表中某个条目时被调用
select: (action, itemData, callbackSetList) => {
// 点击列表选项或者输入框里回车时,会传入enter或search里的callbackSetList的属性。
if(itemData.title == 'openUI'){
exec('python %s'.format(REAL_PATH_DIR+"openUi.py add "+itemData.searchWord))
}else{
exec('python %s'.format(REAL_PATH_DIR+"openUi.py clear"))
}
//隐藏掉utools
utools.hideMainWindow()
},
placeholder: ""
}
}
}
image
- 模板插件还有无UI模式和文档模式,感兴趣可以直接官网文档。
三、小结
- openUi.py的脚本代码就不展示了,这里实际就是通过nodejs的child_process模块的exec接口,去调用python文件。并且传入参数,utools提供模板插件的列表模式,能很简单的实现在wox开发python插件时几乎一样的效果。