Skip to content

feat(plugin): 增强插件系统能力,支持稳定 ID 与播放栏按钮#56

Open
laoshuikaixue wants to merge 5 commits into
SPlayer-Dev:devfrom
laoshuikaixue:feat/plugin-playback-buttons
Open

feat(plugin): 增强插件系统能力,支持稳定 ID 与播放栏按钮#56
laoshuikaixue wants to merge 5 commits into
SPlayer-Dev:devfrom
laoshuikaixue:feat/plugin-playback-buttons

Conversation

@laoshuikaixue

@laoshuikaixue laoshuikaixue commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

改动类型

  • 新功能(feat)
  • 缺陷修复(fix)
  • 重构 / 优化(不改变对外行为)
  • 文档(docs)
  • 其他(请在「改动说明」中注明)

是否包含破坏性变更

  • 是(请在「改动说明」中详细描述)

改动说明

本次 PR 主要完善 SPlayer 的插件体系,重点包括:

  • 为插件增加稳定标识能力,支持通过 @id 识别并覆盖同一插件的后续版本
  • 扩展控制插件能力,新增播放栏按钮注册与命令回调机制
  • 插件命令上下文仅下发当前歌曲的安全快照,避免暴露宿主内部数据
  • 补充并整理插件文档,更新 apiLevel 3、splayer.ui.onCommand() 及相关示例
  • 调整插件导入与状态通知流程,提升插件更新与管理体验

自查清单

  • 本 PR 只包含一个主要功能 / 修复,没有夹带无关改动
  • 已在本地完整测试通过;AI 生成的代码同样自行测试并审阅过,未做未经验证的提交
  • 已运行 pnpm format,并确认 pnpm typecheckpnpm lint 通过
  • 改动涉及原生模块时已 pnpm build:native 验证;未手写 native/*/index.d.ts
  • 已向 dev 分支提交

- 添加 apiLevel 3 支持播放栏按钮注册
- 实现插件安全曲目快照传递给按钮命令处理器
- 添加六种按钮图标支持 (send, upload, radio, external-link, bookmark, heart)
- 限制每个插件最多4个播放栏按钮
- 实现按钮点击时的加载状态和结果提示
- 添加 UI 命令超时处理机制
- 更新文档说明播放栏按钮的使用方法和限制
- 在插件头部元数据中添加 @id 字段支持,用于指定稳定插件 ID
- 实现插件重导入时基于 @id 覆盖旧版本的功能
- 添加插件设置页打开时的通知机制,控制类插件可监听此事件
- 更新文档说明插件 ID 的生成规则和使用方式
- 修复 SSelect 组件空字符串值处理问题
- 优化弹窗组件关闭按钮实现方式
@laoshuikaixue laoshuikaixue changed the title feat(control): 新增插件播放栏按钮功能支持 feat(plugin): 增强插件系统能力,支持稳定 ID 与播放栏按钮 Jun 27, 2026
- 修改示例为更通用的“稍后听”场景,适用于同步、收藏、待办类插件
- 将按钮ID从"submit"改为"listen-later",标签改为"稍后听",图标改为书签
- 更新命令处理器从"submit"到"listen-later"
- 修改API端点路径为/api/open/listen-later
- 请求数据结构从trackId改为musicPlatform和musicId
- 成功消息从"已完成"改为"已加入稍后听"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant