跳到主内容

dsh-mobile

21Star4Fork1Issue0Watching

为 DSH WebUI 提供手机端适配:窄屏下三栏框架重排为左右两页的翻页器,侧边栏常驻露出半边聊天卡片。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
BSD-3-Clause
分支
master
dsh-plugin

安装

命令web profile
$ dsh plugin --profile web add github:lehhair/dsh-mobile

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 lehhair/dsh-mobile:先查看仓库 https://github.com/lehhair/dsh-mobile 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DSH WebUI 提供手机端适配:把原本的三栏界面重排为左右两页的翻页器(侧边栏页 + 聊天页),手指一滑即可在侧边栏和对话之间切换,聊天卡片保持原样不被改写。

核心能力

  • 在窄屏(≤768px)下把 DSH 的三栏框架变成横向 snap 翻页器:左页是半开的侧边栏,右页是全宽聊天区
  • 让侧边栏始终完整渲染在 DOM 里——滑到聊天页时它继续留在后台,不再因切换而重新渲染
  • 滚动时给聊天卡片加上 PiUI 风格的 3D 翻转效果(rotateY + scale),松手后自动吸附到最近整页
  • 自动避开 iPhone 底部安全区、刘海/灵动岛、虚拟键盘,必要时调整输入框的位置
  • 超长模型名超出输入框宽度时显示带间距的单向跑马灯,prefers-reduced-motion 下回退省略号
  • 卸载插件后样式与控制器彻底清理,桌面端界面逐字节等同官方原生

技术实现

  • 语言: TypeScript
  • 关键依赖: cordis (^4.0.0-rc.7)、react (^18.2.0)、lightningcss、tsdown;运行时依赖宿主提供的 @deepseek-ai/dsh-client-runtime 与 @deepseek-ai/dsh-client-ui-layout
  • 架构模式: Cordis 双入口插件——宿主侧 src/index.ts 为空(仅占位),客户端侧 apply(ctx) 注入一个 DOM 控制器 + 全局 CSS 表,全局 CSS 通过 tsdown 的 lightningcss 插件编译后内联为 <style data-plugin> 标签注入,作用域为 <html data-dsh-mobile>;钩子机制上订阅 ctx.sessions.list,当前会话切换时自动回到聊天页
  • 入口文件: src/index.ts(宿主)+ src/client/index.ts(浏览器端)

适用场景

当你想在手机、平板或横屏折叠屏上使用 DSH Web UI 时安装。原生三栏在窄屏下会被压缩成几乎不可用的细列,而该插件把它们重排为大屏手机 App 常见的两页卡片结构,聊天卡片保持原貌不被改写、侧边栏可随时滑出;同时也让横屏手机、大折叠屏与小平板的内容区不再浪费宽度。

前置依赖与兼容性

依赖最低版本说明
DSH>=0.0.1(dsh.plugin.json 声明)面向官方 Web 发行版(rc.2 / rc.5 已验证),平台 web
Node未声明跟随宿主 DSH 运行时
平台web仅在 DSH Web 端生效,不影响 headless / desktop
原生模块无纯 CSS + 浏览器 API(visualViewport / matchMedia / ResizeObserver)

安装方式

dsh plugin --profile web add github:lehhair/dsh-mobile

配置项

本插件无需额外配置。安装到 Web profile 后即在 ≤768px 视口下自动启用,无需用户调整任何选项。

常见问题

Q: 这个插件会改动 DSH 的核心代码吗?

A: 不会。插件只用客户端 CSS 与一个 DOM 控制器实现效果,样式以 <style data-plugin> 标签形式注入并被卸载时移除;控制器也仅做受控的滚动监听与属性变更,不修改任何宿主代码。

Q: 安装后需要在网页上做什么配置吗?

A: 不需要。本插件没有配置项,安装即生效;视口宽度与虚拟键盘弹出由内置控制器自动监听与处理。

Q: 在桌面浏览器上访问会改变原有布局吗?

A: 不会。翻页器仅在 max-width: 768px 时启用,桌面三栏布局保持原样。

Q: 用 iPhone Safari 还是微信内置浏览器打开都能用吗?

A: 可以。只要浏览器支持 visualViewport(现代浏览器与 PWA 均支持),虚拟键盘弹起时输入栏会自动上移;不支持时键盘内边距退化为 0,仍可使用但键盘可能遮挡输入区。

Q: 横屏手机、大折叠屏、小平板会怎样?

A: 视口宽度落在 560-768px 时启用宽屏模式,侧边栏页宽度从 360px 随视口增长到约半个屏幕(上限 420px),内容拉伸铺满整页,避免大片留白。

Q: 卸载插件后界面会立刻恢复原样吗?

A: 是的。样式标签在卸载时被移除;控制器在 dispose() 时还原 viewport meta、<html> 上的属性与 CSS 变量,桌面端逐字节等同官方原生。

上手难度

入门 — 安装到 Web profile 后无需任何配置,窄屏访问即自动生效;不需要修改设置或编写代码。

已知问题与限制

  • 在窄屏下,详情列会遵循宿主框架的让步链自动关闭(核心行为,插件不越权覆盖),因此翻页器只支持两页(侧边栏 + 聊天),不存在详情页
  • 虚拟键盘内边距依赖浏览器 visualViewport;不支持时退化为 0,键盘可能遮挡输入区(README 已说明)
  • jsdom 测试环境无 ResizeObserver,跑测时模型名跑马灯仅靠 MutationObserver 触发(源码 src/client/controller.ts:198 显式分支处理)
  • 升级时 pnpm 可能按 releases/latest URL 缓存旧 tarball,需先 dsh plugin --profile web remove 再重装(README 升级提示)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/lehhair/dsh-mobile)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录