Ứng dụng iOS (Node)¶
Tình trạng khả dụng: bản xem trước nội bộ. Ứng dụng iOS hiện chưa được phân phối công khai.
Chức năng¶
- Kết nối tới Gateway qua WebSocket (LAN hoặc tailnet).
- Cung cấp các khả năng của node: Canvas, chụp màn hình, chụp camera, vị trí, chế độ nói, kích hoạt bằng giọng nói.
- Nhận các lệnh
node.invokevà báo cáo các sự kiện trạng thái của node.
Yêu cầu¶
- Gateway chạy trên một thiết bị khác (macOS, Linux hoặc Windows qua WSL2).
- Đường dẫn mạng:
- Cùng LAN qua Bonjour, hoặc
- Tailnet qua unicast DNS-SD (ví dụ domain:
openclaw.internal.), hoặc - Nhập host/cổng thủ công (dự phòng).
Khởi động nhanh (ghép cặp + kết nối)¶
- Khởi động Gateway:
openclaw gateway --port 18789
-
Trong ứng dụng iOS, mở Settings và chọn một gateway đã được phát hiện (hoặc bật Manual Host và nhập host/cổng).
-
Phê duyệt yêu cầu ghép cặp trên máy chủ gateway:
openclaw nodes pending
openclaw nodes approve <requestId>
- Xác minh kết nối:
openclaw nodes status
openclaw gateway call node.list --params "{}"
Các cách khám phá¶
Bonjour (LAN)¶
The Gateway advertises _openclaw-gw._tcp on local.. The iOS app lists these automatically.
Tailnet (xuyên mạng)¶
Nếu mDNS bị chặn, hãy sử dụng một vùng DNS-SD unicast (chọn một domain; ví dụ: openclaw.internal.) và Tailscale split DNS.
Xem Bonjour để biết ví dụ CoreDNS.
Host/cổng thủ công¶
Trong Settings, bật Manual Host và nhập host + cổng của gateway (mặc định 18789).
Canvas + A2UI¶
The iOS node renders a WKWebView canvas. Use node.invoke to drive it:
openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://<gateway-host>:18793/__openclaw__/canvas/"}'
Ghi chú:
- Máy chủ canvas của Gateway phục vụ
/__openclaw__/canvas/và/__openclaw__/a2ui/. - Node iOS tự động điều hướng tới A2UI khi kết nối nếu có quảng bá URL máy chủ canvas.
- Quay lại scaffold tích hợp sẵn bằng
canvas.navigatevà{"url":""}.
Canvas eval / snapshot¶
openclaw nodes invoke --node "iOS Node" --command canvas.eval --params '{"javaScript":"(() => { const {ctx} = window.__openclaw; ctx.clearRect(0,0,innerWidth,innerHeight); ctx.lineWidth=6; ctx.strokeStyle=\"#ff2d55\"; ctx.beginPath(); ctx.moveTo(40,40); ctx.lineTo(innerWidth-40, innerHeight-40); ctx.stroke(); return \"ok\"; })()"}'
openclaw nodes invoke --node "iOS Node" --command canvas.snapshot --params '{"maxWidth":900,"format":"jpeg"}'
Kích hoạt bằng giọng nói + chế độ nói¶
- Kích hoạt bằng giọng nói và chế độ nói có sẵn trong Settings.
- iOS có thể tạm dừng âm thanh nền; hãy coi các tính năng giọng nói là best-effort khi ứng dụng không ở trạng thái hoạt động.
Lỗi thường gặp¶
NODE_BACKGROUND_UNAVAILABLE: đưa ứng dụng iOS lên foreground (các lệnh canvas/camera/màn hình yêu cầu điều này).A2UI_HOST_NOT_CONFIGURED: Gateway không quảng bá URL máy chủ canvas; kiểm tracanvasHosttrong Cấu hình Gateway.- Không thấy lời nhắc ghép cặp: chạy
openclaw nodes pendingvà phê duyệt thủ công. - Kết nối lại thất bại sau khi cài lại: token ghép cặp trong Keychain đã bị xóa; hãy ghép cặp lại node.