dsh-mobile-ui:DSH Web 的移動端外殼插件

前言

智能體開發者經常需要在手機上查看對話結果或調試輸出。DSH Web 默認在桌面端運行,移動端佈局會壓縮對話區、佔用較多屏幕空間,體驗不夠友好。這個插件爲 DSH Web 提供了一個移動端專用外殼:在移動視口下自動切換成抽屜導航、全屏對話、觸控友好的界面,桌面端行爲保持不變。

插件定位

dsh-mobile-ui 是一個 DSH Web 插件,爲移動端提供專用 UI 外殼。插件由 kaijia323 維護,分類爲客戶端插件。它在視口寬度 ≤ 767px 時生效,通過 html[data-dsh-mobile] 標記區分移動端與桌面端。

核心功能

抽屜式導航

左側欄在移動端不再佔用 grid 寬度,改爲覆蓋式抽屜(84vw,最大 320px,帶圓角和陰影)。頂部欄左側出現漢堡鍵用於打開抽屜。點擊會話行、點「新會話」(含品牌區)、切全局面板會自動收起抽屜。點遮罩或按 Esc 也會收起(有菜單打開時 Esc 只關菜單,抽屜留在原地)。抽屜內的就地操作(搜索、工作區展開、會話「…」菜單、底部「更多」菜單、菜單裏的置頂/歸檔/設置)不會關閉抽屜。

全屏對話區

對話區佔滿整屏,不與左側欄共用寬度。全局面板(插件頁、自動化任務等)底部有欄,左鍵開抽屜、右鍵回對話,避免”出不來”的死路。

設置面板適配

移動端設置面板改爲全屏、分類橫向排列,主題選擇以三塊並排顯示。

安全區適配

宿主側通過 viewport-fit=cover 注入頁面,樣式裏使用 env(safe-area-inset-*) 給抽屜、頂欄、輸入區留出劉海和小白條的位置。

鍵盤適配

跟蹤 visualViewport,用 --dsh-mobile-vv 讓佈局高度跟隨可見區域,輸入框不會被軟鍵盤頂出屏幕。切會話、新建會話、首次加載時輸入框不自動聚焦;點「+」時需要輸入框焦點才能掛出菜單,只在同一輪點擊內短暫聚焦。

觸屏可達

會話行「…」和工作區行「… / +」在觸屏下常顯,手機上可以重命名、歸檔、置頂、在工作區新建會話。正文 16px、代碼 13.5px;控件最小高度 36px。

安裝與啓用

前提:DSH Web 0.2.1-rc.2(本插件按該版本構建;其他版本可能靜默降級成桌面樣式)。

方式一:插件市場

  1. 打開插件頁的實驗性「自定義插件市場」(插件 → 實驗性插件 → 更多);
  2. 切到「發現」標籤,點「添加索引源」,填:
   https://kaijia323.github.io/dsh-mobile-ui/index.json
  1. 找到「移動端外殼」,點安裝。

方式二:GitHub 地址

  1. 打開 DSH Web → 左側欄「插件」→ 右上「添加插件」;
  2. 輸入 github:kaijia323/dsh-mobile-ui;
  3. 點「安裝」,裝完在插件列表裏啓用 dsh-mobile-ui。

方式三:本地目錄

git clone https://github.com/kaijia323/dsh-mobile-ui.git ~/dsh-mobile-ui

然後在「添加插件」裏填本地目錄路徑(例如 /home/you/dsh-mobile-ui)。

驗證安裝

手機寬度(≤ 767px)打開:左上角出現漢堡鍵、側欄變成覆蓋式抽屜、對話區佔滿整屏;桌面寬度下佈局與原來一致。

卸載 / 臨時關閉

  • 插件列表裏禁用 dsh-mobile-ui;
  • 或地址後加 ?dsh-mobile=off 臨時關閉。

結構說明

文件 作用
index.js 宿主半:webServer.tapIndex 注入 viewport-fit=cover 和首幀前的 data-dsh-mobile 標記
client.js 瀏覽器半:樣式、視口標記、鍵盤高度、抽屜交互、頂部欄導航鍵、焦點守衛
cordis.patch.yml bundle 插入行
locale/{zh,en}.json 插件列表裏的標題 / 描述

版本錨定與降級

抽屜、遮罩、面板底欄使用的是 DSH 自帶框架穩定的 data-* 錨點([data-slot="sidebar"]、[data-slot="main"]、[data-shell-overlay]、[data-sidebar-collapsed]、[data-row-key]),升級後如果結構變了,樣式會自動降級成”沒有移動層”,不會把桌面端弄壞。設置頁、主題塊、統計 pill、加號按鈕這幾處用的是當前構建的哈希類名(.VOzbGW_*、_8HJdBW_*、bOPqQW_*、.uV2eYG_*、._7KE1Ra_*),升級後會靜默退回桌面樣式。

已知邊界

  • 真機輸入法:軟鍵盤的彈出/收起時序、安全區數值,模擬環境量不出來,只能真機確認。
  • 真實觸屏:滾動慣性、長按這類手勢只做了樣式預設。
  • 半屏以上寬度(768–1023)仍走桌面版(56px 欄),沒有平板專用佈局。
  • 輸入條統計與設置頁的少數版式依賴當前構建的哈希類名,升級後會靜默退回桌面樣式。
  • 宿主半的 viewport meta 是全局替換的,桌面端也會帶 viewport-fit=cover(無視覺影響)。

適用場景

適合需要在移動設備上查看、調試 DSH Web 對話的開發者。如果你經常用手機訪問 DSH Web,這個插件可以讓界面更緊湊、操作更順手。

生態說明

DSH 理念是「一切皆插件」,社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。

參考

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜