# 移动页面模块

[English](CLIENT_MODULES.en.md) · [返回 README](../README.md#可选模块与高级配置)

> 模块管理入口自插件 0.6.0 起提供；下述搜索、分组及恢复改进需要插件 0.6.5 或更新版本。插件与 App 的版本号不必相同。

用“移动页面模块”选择专用移动页面要加载的客户端组件。它不卸载电脑上的插件，不停止插件服务，也不是设备权限隔离；已配对设备仍是受信任的 DSH 操作者。

## 电脑默认与本设备选择

- **电脑端：设置 → 通用设置 → 移动页面模块 → 管理**，修改此电脑的移动访问默认加载项。先开启一个局域网或远程访问入口，才能读取当前 DSH 的模块目录。
- **手机端：设置 → 通用设置 → 移动页面模块 → 管理**，只修改当前已认证配对设备的覆盖选择，不能修改其他手机或电脑默认。

有效选择依次为：本设备覆盖 → 电脑默认 → profile 中的 `excludedClientModules` 配置。没有这些自定义设置时不排除模块。电脑默认由局域网与远程入口共用；设备覆盖按配对身份保存，同一手机的独立局域网和远程配对不会自动共用一个覆盖。

手机的“恢复默认”删除自己的覆盖，重新使用电脑默认；电脑的“恢复默认”删除电脑覆盖，重新使用插件配置。其他设备的覆盖保持不变。

## 找到要调整的模块

默认先显示**可选扩展**；**DSH 可选组件（高级）**和**启动必需项**折叠显示。后者不能关闭。分类只帮助浏览，不表示来源认证，也不代表每个前端模块就是一个完整插件。

使用搜索框按名称或模块 ID 查找，或筛选“加载／不加载”。筛选不会丢弃其他条目的未保存选择。显示名称省略通用的 DSH 客户端前缀并机械分词；完整 ID 和声明依赖在“模块详情”中，不猜测第三方插件的用途。加载规则默认折叠，需要时再展开。

DSH 或插件更新后，旧排除项可能已不在目录中，或变为启动必需项。此时会单独显示“失效的旧选择”；点击对应的“移除旧排除”后再保存，保留其他选择。不自动清除，也不允许关闭必需项。

## 选择与生效

1. 等待目录读取完成；读取失败或超时可点击“重新读取”，不必关闭弹窗。重新读取会替换未保存选择，存在改动时需先确认。
2. 勾选表示下次打开时加载，取消勾选表示下次不加载，不表示当前页面中的模块已经卸载。启动必需模块不能取消；可在详情中查看声明依赖。
3. 查看“未保存”改动数量，点击“保存选择”；没有改动时保存不可用。若保留模块仍依赖已排除模块，保存会拒绝并说明冲突：保留依赖，或同时排除不再需要的依赖方。不会自动连带取消其他模块。
4. 保存成功后，当前页面、会话和草稿不会被自动刷新。下次手动重新打开或刷新 DSH 页面时应用选择，无需为设置入口的保存重启 DSH。

关闭、Escape 或 App 返回动作触发时，有未保存改动会提示确认。保存失败保留选择；保存超时只表示结果尚未确认，不等于服务器已回滚。可重新读取确认保存结果，不会自动重试写入，关闭弹窗也不能撤销已经完成的保存。长列表独立滚动，关闭和底部操作保持可达。

电脑页面与 `?frontend=stock` 页面不受模块选择影响。DSH 或社区插件更新可能改变模块目录和依赖；已保存的选择阻止移动页面启动时，页面提供“为本设备加载全部模块并重试”，由你点击后恢复本设备的加载选择，不改变电脑默认、其他设备或配对授权。设置接口仍拒绝无效选择，不绕过启动必需或依赖检查。模块大小因安装环境而异，不承诺固定的加载流量节省比例。

## 数据与授权

选择原子保存在电脑的 DSH Mobile 私有数据目录，不复制会话草稿。目录接口只返回模块 ID、必需标记、依赖和选择，不返回上游下载 URL、本机文件路径或配对凭据。手机只能通过已认证的 Gateway 读取自己的选择；修改还需同源和 CSRF 校验。

撤销配对授权会移除该授权的模块覆盖。要停止某台手机操作电脑，请在电脑端撤销设备，而不是只关闭一个客户端模块。

直接修改 profile 中的高级配置仍需重启 DSH；配置示例与限制见 [第三方插件适配](../README.md#第三方插件适配)。
