前言¶
在 DeepSeek Harness (DSH) 的开发流程中,远程设备配对通常需要打开一个新的浏览器标签页,或者手动访问特定的本地端口地址。这种方式会打断当前的工作流,增加操作步骤。
DSH-QrPairing 插件通过在 WebUI 右下角添加一个悬浮入口,将配对流程集成在应用界面内部。它作为 dsh-remote-link 网关的配套 UI,提供更连贯的操作体验。
插件简介¶
这是由 huaxiren6 维护的一个客户端 UI 插件。它不直接处理配对逻辑,而是负责将配对入口注入到桌面端 WebUI 中。通过点击悬浮按钮,用户可以在应用内弹出一个浮层,直接查看配对二维码。
核心功能¶
- 悬浮入口:在 DSH WebUI 右下角显示悬浮按钮。
- 内嵌浮层:点击按钮后,在当前页面弹出浮层展示配对二维码,无需切换标签页。
- 环境限制:按钮仅在通过
127.0.0.1或localhost访问时显示。 - 容错处理:如果系统未检测到
dsh-remote-link网关,浮层会显示“未检测到网关”的提示,而不是报错或空白。 - 实时数据:浮层内的二维码和短码通过同源代理实时获取。
安装与启用¶
在安装本插件之前,必须确保已安装 dsh-remote-link 网关插件。
执行以下命令安装:
dsh plugin --profile web add github:BotonJ/dsh-remote-link
dsh plugin --profile web add dsh-remote-qr-button
典型用法¶
- 确保以本地模式启动 DSH WebUI。
- 在浏览器右下角找到悬浮按钮并点击。
- 等待浮层内的倒计时,使用手机扫描二维码完成配对。
工作原理¶
该插件在 Host 端和 Client 端分别进行了处理:
-
Host 端(配置与代理):
插件会在当前服务中注册同源路由。通过GET /dsh-remote-qr-button/config探针实时读取dsh-remote-link的端口、短码与 TTL 配置,通过GET /dsh-remote-qr-button/qr.png代理获取实时的配对二维码图片。 -
Client 端(渲染与交互):
点击悬浮按钮后,前端会请求探针接口。页面会通过同源<img>标签渲染二维码,并显示 6 位短码和倒计时。倒计时期间会每 5 秒进行一次轮询。 -
Electron 兼容性:
插件使用<img>而非<iframe>渲染二维码。这是为了解决 Electron 桌面应用拦截跨源子框架导航的问题。如果使用 iframe,指向http://127.0.0.1:<port>/qr的内容在 Electron 中会被渲染为空白。同源代理确保了浏览器和 Electron 桌面端都能正常显示。
注意事项¶
- 前置依赖:必须先安装
dsh-remote-link网关才能使用本插件。 - 访问限制:仅支持从
127.0.0.1或localhost访问时显示按钮。 - ID 冲突:本插件的按钮 ID 与
dsh-remote-link注入的 ID 互斥。如果两者同时挂载,先挂载者生效,另一个会跳过。 - 运行权限:插件以当前 DSH 进程的权限运行,建议在安装前检查源码与许可证。
总结¶
DSH-QrPairing 通过同源代理和悬浮按钮设计,解决了远程配对时频繁切换标签页的问题,特别是在 Electron 桌面端通过 <img> 渲染保证了兼容性。
- GitHub: https://github.com/huaxiren6/DSH-QrPairing
- 社区目录: https://www.skillhub.cn/plugins/huaxiren6/DSH-QrPairing