bob 翻译软件尽管目前已经接入了多家的翻译服务,但还是可能会有用户想要其他的服务,根据 issue#53 的建议,我们实现了自定义 API 的功能,为了使这个功能足够灵活且可复用,我们采用的是插件的形式。
下载插件
目前并没有什么现成的插件,也没有统一下载插件的地方。
如果有人分享插件,也许可以在下面这个链接找到:
https://github.com/topics/bobplugin
查看插件源码
Bob 插件文件以 .bobplugin
为后缀名,但本质上是一个压缩包。如需查看源码,可以将文件后缀名改为 .zip
,解压之后即可查看插件源码。
安装插件
在安装使用他人开发的插件之前,请自行评估插件是否会损坏你的利益
如果电脑上已安装 Bob 0.5.0 以上版本,鼠标左键双击插件文件(以 .bobplugin
为后缀名),即可自动安装。安装成功或异常,会弹窗提示。
安装好插件之后,在 Bob「偏好设置-插件」中可查看已安装的插件。这里以一个「文本翻译」插件为例,如下所示:
删除插件
如果想要删除插件,在 Bob「偏好设置-插件」中将其选中,然后点击下方的齿轮按钮,点击「删除插件」
使用插件
使用插件和使用其他普通服务的方法一样,具体如下。
点击「偏好设置-服务」中对应类型的服务列表下方的 +
号,弹出的菜单中可以看到安装好的插件,点击对应插件将其添加到服务列表中
将刚才添加的插件服务勾选上,然后点击右下方 保存
按钮
开发插件
Bob 这个软件本身非常轻量,对于 macOS 系统而言就像是一个「插件」一样,Bob 插件我们也尽量把它做得简单。
插件本质上就是对 服务 的一种扩充,通过插件你可以自定义服务,并将其接入到 Bob 主程序。
原理
插件需要使用 JavaScript
语言开发,使用插件的时候,Bob 主程序会利用 JavaScriptCore 引擎将插件加载到内存中,然后调用插件实现的相关函数,以达到调用插件的效果。
运行环境
需要注意的是,插件运行环境不是 Web
环境,也不是 Node.js
环境,只可以使用如下几种 API:
- JavaScript 语言内置对象和内建函数
- Bob 额外提供的对象和函数
- 自行导入或实现的代码模块
插件类型
由于插件是对服务的一种扩充,服务分为几种类型(文本翻译、文本识别...),所以插件也是需要指定类型,不同类型的插件,需要实现的函数也有所差异。