跳转到内容

移动端 APP(Android)

Portal:Tauri Androidsrc/portal/app/tauri/)+ 包内 dist-mobile / ui/web
Shell rules: .agent/rules/tauri-shell.md.

ItemDescription
PlatformAndroid sideload (APK); iOS later
UIAPK 内 WebView 加载 prepare-tauri-ui 拷入的 ui/web
ModulesChat + Habitat(本地 app-ui)
Habitat configAPP 设置 → 连接(Rust prefs / app_config_dir
Habitat dutiesHabitat 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

Mobile REST connects directly to Habitat (no local REST proxy); requires a Service API Token and Habitat CORS for the WebView origin.

  1. Home PC: anima service start --host 0.0.0.0, create a Service API Token (anima token create --subject-id 1 --name bootstrap; see remote-access.md).
  2. First launch without Token → 设置 → 连接:
    • Habitat URL(http://<PC-IP>:2658 or HTTPS;avoid 127.0.0.1 on phone)
    • Service API Token (fa_at_...)
  3. 测试连接保存并进入 → local /web/chat.
SymptomCommon cause
Keyboard covers chat inputWebView not resizing; rely on visualViewport inset (visualViewport only)
Chat input unresponsiveNo selected conversation; or Habitat RPC disconnected
Habitat load failed / Failed to fetchHabitat not --host 0.0.0.0, wrong token, firewall
测试连接「网络错误」、浏览器同地址正常壳内 HTTPS 需信任 mkcert 根 CA(network_security_config 已信任用户 CA);或暂用 http://…:2658
测试连接成功,实际「连接已断开」测试含原生 HTTP + WebSocket;仍断连则查 token / WS 代理
Read-only file system on saveFixed: prefs write to app private config dir
ZeroTier / 虚拟网卡 IPPhone ZeroTier online; Habitat http.host: 0.0.0.0; shell URL without trailing slash
Install NO_CERTIFICATES / version downgradePack signs APK; uninstall old canary build then reinstall
安装失败「签名冲突」Uninstall com.freeanima.portal(或旧包 org.freeanima.app) then reinstall

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 安装)

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

Desktop TauriAndroid Tauri
Injectionbootstrap-tauri-desktop → ShellApibootstrap-tauri-mobile → ShellApi
Habitat config设置 → 连接 → ~/.anima prefs设置 → 连接 → app config dir
Companionoverlay WebViewn/a(番茄钟小组件 MVP)
REST / RPCDirect Habitat + Bearer / WSSame