适用于DrBlack System Service的插件开发文档

在开始编写插件之前,请先做好以下准备工作:

一个你喜爱的文本编辑器/IDE
你需要实现的功能
实现的思路(通过JavaScript即Node.js)

1.首先新建一个文件夹

2.建立元数据文件

新建一个JSON文件,在其中填入以下内容,并根据下方的字段说明对您的实际情况修改内容。

{
	"name":"Hello World",
	"description":"This is a sample extension",
	"author":"Yuameshi",
	"versionCode":1,
	"version":"1.0",
	"package":"xyz.han-han.example.extension",
	"injectToRendererProcess": "index.js",
	"injectToMainProcess": "main.js"
}
字段名称数据类型数据描述
name字符串(String)插件名称
description字符串(String)插件描述
author字符串(String)插件作者
versionCode数字(Number)版本号
version字符串(String)版本名称
package字符串(String)包名,命名规则见下
injectToMainProcess字符串(String)注入到主进程的脚本相对路径
injectToRenderer字符串(String)注入到渲染进程的脚本相对路径
字段说明

包名(Package字段)说明

什么是包名 ?

DBSS使用包名(Package Name)作为应用的唯一标识。即:包名必须唯一,一个包名代表一个插件,不允许两个插件使用同样的包名。包名主要用于DBSS识别应用,几乎不会被最终用户看到。

包名的命名规则

可以包含大写字母(A到Z)、小写字母(a到z)、数字和下划线,可以用点(英文句号)分隔,隔开的每一段都必须以字母开头。

避免包名冲突

因为包名是唯一标识,为了避免与其他插件的包名重复,产生冲突,您可以这样命名:
将您的域名反转过来作为前缀,比如如果您的域名是example.com,那么包名可以用com.example开头,这样可以有效的避免重复
在后面增加描述产品名称的字符,比如您的插件将用于修改主题,可以命名为com.example.theme
如果您没有域名,可以使用自己的邮箱作为前缀,比如 com.qq.WoDeYouXiang

包名冲突如何处理?

如果您发现您尚未发布的插件,包名和其他开发者已经发布的插件重复了,建议立刻修改插件的包名,避免冲突。
如果您的插件已经发布了,但是在提交插件时,被告知已经有其他开发者上传了同包名的插件,可以按照指示,联系yuameshi@outlook.com处理。

请注意

插件发布后,请不要修改包名,一旦您修改了包名,就会被当作一个新的插件,旧版用户也无法直接更新插件。

注入脚本路径说明(injectToMain/RendererProcess字段)说明

路径为相对路径,程序在调用时将调用对应的脚本注入到对应的进程,如果您的脚本位于scripts文件夹下,文件名为index.js,则填写scripts/index.js,如果位于根目录下,文件名为main.js,则直接填写main.js

3.开始编写脚本

DBSS的运行环境中包含Node支持,当前暂不支持引入外部依赖,只能引入DBSS具有的依赖,DBSS当前包含的依赖列表如下所示:

你可以在以下站点找到它们的文档

Electron
Node.js
electron-prompt
fs-extra
node-stream-zip
node-powershell
regedit
bytenode
@electron/remote

4.打包插件及发布

将插件工作目录下需要的文件添加到一个ZIP格式的压缩文件中,然后提交到yuameshi@outlook.com处,由我们进行审核,测试,发布。

点赞

发表评论