All plugins

DSH / BUNDLE / BUNDLES

dsh-pet-android

v0.2.1Tongyu3 / dsh-pet-androida85b67e1ae

InstallableBundlesBundles & other modulesCommunity · Topic auto-analysis

Overview

dsh-pet-android

dsh-pet 的 Android 上层显示衍生插件:多载体自动探测——DSHA 走 3090 文本悬浮条,Tdsh 等实现窗口契约的移植走透明悬浮窗。插件自身不申请、不处理任何悬浮权限。

README / EN

Package documentation

Registry summary

dsh-pet 的 Android 上层显示衍生插件:多载体自动探测——DSHA 走 3090 文本悬浮条,Tdsh 等实现窗口契约的移植走透明悬浮窗。插件自身不申请、不处理任何悬浮权限。

dsh.pub verifies the pinned bundle contract, runtime facts, and distribution semantics. The complete README remains in the source repository.

Read the full README on GitHub

LIMITATIONS

Known limitations

1. **窗口不是插件能造的**。Android 上任何 `WindowManager.addView` 都需要宿主 App 的 Context 与 `SYSTEM_ALERT_WINDOW`,容器里的 Node 拿不到。所以本插件的成品形态是「页面 + 请求文件 + 载体适配」, 宿主按契约建窗;DSHA 上则由它自己的文本悬浮条承载。`/status.carriers` 会如实报告走的是哪条。 2. **DSHA 目前只能"文本在场",不是完整桌宠**。DSHA 的 3090 桥没有 WebView/图片悬浮窗端点 (`OverlayController` 只画 TextView),插件无法凭空造窗。要完整桌宠,需要 DSHA 把 悬浮层的 TextView 换成加载 `overlay.html` 的透明 WebView——插件侧页面/动画/拖拽已经是成品。 逐移植现状见 [docs/PORT-MATRIX.md](docs/PORT-MATRIX.md)。 3. **不内置权限逻辑**。没有 `Settings.canDrawOverlays`、没有跳系统设置、没有「没权限就退回页面内显示」。 DSHA 返回 `DISABLED` / `NO_PERMISSION` 时插件只做冷却,不重试轰炸、不代用户开开关。 4. **拖动依赖 `screenX/screenY`**。窗口模式下宿主会跟着手指移动窗口,页面必须用**屏幕坐标**算位移 (用 `clientX/clientY` 会自锁)。个别套壳 WebView 若把 `screenX` 降级成页面坐标,表现是 「拖不动」——此时让宿主注入 `DshOverlayHost` 桥并由宿主自己处理拖动。 5. **多宠物 = 多窗口**。每只 `display` 含 `desktop/both` 的宠物各占一个悬浮窗、一个 WebView, 手机上开太多会明显吃内存,建议手机端只留 1 只。文本载体则只显示第一只(按 id 顺序)。 6. **不做右键菜单 / 对话 / 碎碎念开关**。这些是上游浏览器与桌面端的 UI 能力;手机上暂以 上游设置页 + 上游 HTTP 接口(`/whisper`、`/broadcast`、`/anim`、`/chat`)为准。 气泡与点播动画是只读消费:本页面读 `/dsh-pet-7340/state` 的 `pets.<id>.say` 与 `pets.<id>.anim`。 7. **通知、余额、工作状态联动**同样未在悬浮窗里做(上游 `sections.*` 有数据,v1 只消费 `say/anim`; 文本载体只消费 `say`)。 8. **上游未装或未启用**时不会静默黑屏:页面显示「未找到 dsh-pet 上游插件」, `/status.windowReport.upstreamOk=false`;文本载体则什么都不推。 9. **素材走 blob 预取**(与上游浏览器端一致,10s 超时):慢网络下切换动画可能跳过一两个,不影响主体。 10. **没有构建步骤**,`src/` 就是产物;改完代码重启 dsh 即可,不需要 `npm run build`。 因此本包**不做类型检查**:用 `npm test`(三套:smoke / dsha / status-overlay)兜底。 11. 本插件**不能**被「打包进 APK / 启动器」使用:它的宿主侧依赖 dsh 的 WebServer 与 profile 机制, 放进 APK 既违反本项目的形态约束,也无法工作。