Android App(Node)
支援快照
- 角色:配套節點應用程式(Android 不主控 Gateway 閘道器)。
- 需要 Gateway:是(在 macOS、Linux 或 Windows(透過 WSL2)上執行)。
- 安裝:入門指南 + 配對。
- Gateway:操作手冊 + 設定。
- Protocols: Gateway 協定(節點 + 控制平面)。
系統控制
系統控制(launchd/systemd)位於 Gateway 閘道器 主機上。請參閱 Gateway。 See Gateway. See Gateway.連線操作手冊
Android 節點應用程式 ⇄(mDNS/NSD + WebSocket)⇄ Gateway Android 會直接連線至 Gateway WebSocket(預設ws://<host>:18789),並使用由 Gateway 擁有的配對機制。
先決條件
- 你可以在「主控」機器上執行 Gateway。
- Android 裝置/模擬器可以連線到 Gateway WebSocket:
- 同一個 LAN 並使用 mDNS/NSD,或
- 同一個 Tailscale tailnet,使用 Wide-Area Bonjour/單播 DNS-SD(見下文),或
- 手動指定 Gateway 閘道器 主機/連接埠(後備)
- 你可以在 Gateway 機器上執行 CLI(
openclaw)(或透過 SSH)。
1. 啟動 Gateway
listening on ws://0.0.0.0:18789
- 在 Gateway 主機的
~/.openclaw/openclaw.json中設定gateway.bind: "tailnet"。 - 重新啟動 Gateway/macOS 選單列應用程式。
2. 驗證探索(選用)
在 Gateway 機器上:透過單播 DNS-SD 的 Tailnet(Vienna ⇄ London)探索
Android 的 NSD/mDNS 探索無法跨網路。如果你的 Android 節點與 Gateway 位於不同網路,但透過 Tailscale 連線,請改用 Wide-Area Bonjour/單播 DNS-SD: If your Android node and the gateway are on different networks but connected via Tailscale, use Wide-Area Bonjour / unicast DNS-SD instead: If your Android node and the gateway are on different networks but connected via Tailscale, use Wide-Area Bonjour / unicast DNS-SD instead:- 在 Gateway 主機上設定一個 DNS-SD 區域(例如
openclaw.internal.),並發布_openclaw-gw._tcp記錄。 - 為你選擇的網域設定 Tailscale 分割 DNS,指向該 DNS 伺服器。
3. 從 Android 連線
在 Android 應用程式中:- 應用程式會透過 前景服務(常駐通知)維持 Gateway 連線。
- 開啟 Settings。
- 在 Discovered Gateways 下,選取你的 Gateway 並點擊 Connect。
- 若 mDNS 被封鎖,請使用 Advanced → Manual Gateway(主機 + 連接埠)並選擇 Connect (Manual)。
- 手動端點(若已啟用),否則
- 最後一次探索到的 Gateway(盡力而為)。
4. 核准配對(CLI)
在 Gateway 機器上:5. 驗證節點已連線
-
Via nodes status:
-
透過 Gateway:
6. 聊天 + 歷史
Android 節點的聊天頁面使用 Gateway 的 主要工作階段金鑰(main),因此歷史與回覆會與 WebChat 及其他用戶端共用:
- 歷史:
chat.history - 傳送:
chat.send - 推播更新(盡力而為):
chat.subscribe→event:"chat"
7. Canvas + 相機
Gateway Canvas 主機(建議用於 Web 內容)
若你希望節點顯示可由代理在磁碟上編輯的真實 HTML/CSS/JS,請將節點指向 Gateway 的畫布主機。 注意:節點會從 Gateway HTTP 伺服器載入 canvas(與gateway.port 相同的連接埠,預設為 18789)。
-
在 Gateway 主機上建立
~/.openclaw/workspace/canvas/index.html。 - 將節點導向該位置(LAN):
.local,例如 http://<gateway-magicdns>:18793/__openclaw__/canvas/。
This server injects a live-reload client into HTML and reloads on file changes.
此伺服器會將即時重新載入用戶端注入 HTML,並在檔案變更時重新載入。
A2UI 主機位於 http://<gateway-host>:18793/__openclaw__/a2ui/。
Canvas 指令(僅前景):
canvas.eval、canvas.snapshot、canvas.navigate(使用{"url":""}或{"url":"/"}返回預設骨架)。canvas.eval、canvas.snapshot、canvas.navigate(使用{"url":""}或{"url":"/"}回到預設骨架)。canvas.snapshot會回傳{ format, base64 }(預設format="jpeg")。canvas.eval、canvas.snapshot、canvas.navigate(使用{"url":""}或{"url":"/"}回到預設骨架)。canvas.snapshot會回傳{ format, base64 }(預設format="jpeg")。- A2UI:
canvas.a2ui.push、canvas.a2ui.reset(canvas.a2ui.pushJSONL為舊版別名)
camera.snap(jpg)camera.clip(mp4)