-
Notifications
You must be signed in to change notification settings - Fork 369
开发文档
MicroBlock edited this page Dec 3, 2022
·
8 revisions
哇居然真的有人看这个开发文档 感动
Tips: 按下F12可以直接打开开发者控制台
该文件夹在本用户文件夹下,可以点击BetterNCM设置下的Open Folder
打开
打开后 一般会看见两个文件夹:plugins
和 plugins_runtime
其中plugins
文件夹是放置打包后的插件的,而plugins_runtime
是运行时自动生成的插件解压后的文件夹。
你可以直接解压plugins
文件夹内的任意.plugin
文件来了解插件的结构
在开发时,你可以在BetterNCM目录下创建一个plugins_dev
文件夹,该文件夹内的插件会自动重载,且不会在网易云关闭时被删除。
一般,一个插件需要至少两个文件:manifest.json
和一个js文件。
其中,manifest.json
的结构如下
{
"manifest_version": 1, // 必须为1
"version": "0.1.1", // 插件版本号
"name": "StylesheetLoader", // 插件名,建议为英文
"injects": { // 需注入的js
"Main": [ // 需注入的页面 目前仅可为 Main
{
"file": "loader.js" // 需注入文件相对于插件目录的相对路径(目前仅支持js)
}
]
}
}
在BetterNCM0.2.2
后,你还可以创建一个startup_script.js
,该文件内的代码会早于任何网易云自身代码注入,但是不会有plugins api
。
在每个注入的js文件中,你都可以调用plugin.onLoad(async p => {})
和plugin.onConfig(tools => {})
来执行实际代码和渲染设置界面。
plugin.onLoad(async p => {})
中,p
和plugin
内有一些与本插件相关的信息,如当前地址等。
plugin.onConfig(tools => {})
返回一个HTMLElement,会在设置页中显示。tools中有一些帮助创建HTMLElement的工具。
你可以调用BetterNCM API来实现一些如文件操作的基本功能。
在控制台中输入betterncm
以查看全部api (又懒得写文档了)