Skip to content

移动端 APP(Android)

入口:Tauri Androidpackages/frontend/portal/app/tauri/)+ 包内 dist-mobile / ui/web
壳规则:.cursor/rules/tauri-shell.mdc

说明
平台Android 侧载(APK);iOS 稍后
UIAPK 内 WebView 加载 prepare-tauri-ui 拷入的 ui/web
模块聊天室 + 栖息地(本地 app-ui)
栖息地配置APP 设置 → 连接(Rust prefs / app_config_dir
栖息地职责栖息地 RPC REST /rpc/v1 + WebSocket;托管壳内 SPA
flowchart LR
  Phone[Android WebView]
  Local["ui/web 本地 SPA"]
  Chat["/web/chat"]
  HabitatUI["/web/habitat"]
  HabitatSvc[Anima Service]

  Phone --> Local
  Local --> Chat
  Local --> HabitatUI
  Chat -->|Habitat RPC Bearer| HabitatSvc
  HabitatUI -->|Habitat RPC Bearer| HabitatSvc

移动端 REST 直连栖息地(无本地 REST 代理);需要 Service API Token,以及针对 WebView origin 的栖息地 CORS。

  1. 家用 PC:anima service start --host 0.0.0.0,创建 Service API Token(anima token create --subject-id 1 --name bootstrap;见 remote-access.md)。
  2. 无 Token 首次启动 → 设置 → 连接
    • 栖息地 URL(http://<PC-IP>:2658 或 HTTPS;手机上避免 127.0.0.1
    • Service API Token(fa_at_...
  3. 测试连接保存并进入 → 本地 /web/chat
症状常见原因
键盘挡住聊天输入WebView 未随键盘调整;依赖 visualViewport inset(仅 visualViewport)
输入与键盘间透明空隙(约一截底栏高)compose translateY 未扣除 compact 底栏;键盘打开时应藏底栏或 composeKeyboardLift 扣 chrome
聊天输入无响应未选对话;或栖息地 RPC 已断连
栖息地加载失败 / Failed to fetch栖息地未 --host 0.0.0.0、错误 token、防火墙
测试连接「网络错误」、浏览器同地址正常壳内 HTTPS 需信任 mkcert 根 CA(network_security_config 已信任用户 CA);或暂用 http://…:2658
对话正常但顶栏「连接已断开」/ 测试失败顶栏已跟 Habitat RPC WS;若仍断则查 token / WS。测试连接:原生 TLS 失败会回退 WebView;DNS/hosts 失败不回退
测试连接成功,实际「连接已断开」测试含 HTTP health + WebSocket connect 鉴权;仍断连则查 token 是否已保存、或杀进程重开壳
保存时 Read-only file system已修:prefs 写入 app 私有 config 目录
ZeroTier / 虚拟网卡 IP手机 ZeroTier 在线;栖息地 http.host: 0.0.0.0;壳 URL 无尾斜杠
安装 NO_CERTIFICATES / 版本降级打包签名 APK;卸载旧 canary 后再装
安装失败「签名冲突」卸载 com.freeanima.portal(或旧包 org.freeanima.app)再装
关于页 / 系统设置版本像正式版、检测不到更新须带 FREEANIMA_BUILD_VERSION 打包;identity overlay 写入 versionName + versionCode(迁 Tauri 后曾漏同步)
更新下载无百分比APK 插件进度须主线程 trigger;无 Content-Length 时用 Release assetSize 估百分比
更新失败 registerListener not allowed by ACL内联插件须 InlinedPlugin + capability apk-installer:default;改后需重编 APK(热更前端无效)

just dev tauri-android:Tauri Android debug。Chrome chrome://inspect 连 WebView。

Terminal window
just install android
just install tauri-android -- --init # 首次
just pack tauri-android # → dist/ 双写:版本化名 + freeanima-mobile-android.apk(及 legacy tauri 别名;有设备则尝试 adb 安装)

GitHub Release 资源名:freeanima-mobile-android.apk(updater 固定名);同 Release 另附带 freeanima-mobile-android-{ver}-{channel}.apk

桌面 TauriAndroid Tauri
注入bootstrap-tauri-desktop → ShellApibootstrap-tauri-mobile → ShellApi
栖息地配置设置 → 连接 → ~/.anima prefs设置 → 连接 → app config dir
伴侣overlay WebViewn/a(番茄钟小组件 MVP)
REST / RPC直连栖息地 + Bearer / WS相同