Приложение iOS (Нода)
Доступность: внутренний предпросмотр. Приложение iOS еще не распространяется публично.
Что оно делает
- Подключается к Gateway через WebSocket (LAN или tailnet).
- Предоставляет возможности ноды: Canvas, снимок экрана, захват камеры, местоположение, режим разговора, голосовое пробуждение.
- Получает команды node.invoke и сообщает о событиях состояния ноды.
Требования
- Gateway, работающий на другом устройстве (macOS, Linux или Windows через WSL2).
- Сетевой путь:
- Та же LAN через Bonjour, или
- Tailnet через unicast DNS-SD (пример домена: openclaw.internal.), или
- Ручной хост/порт (запасной вариант).
Быстрый старт (сопряжение + подключение)
- Запустите Gateway:
openclaw gateway --port 18789
-
В iOS-приложении откройте Settings и выберите обнаруженный gateway (или включите Manual Host и введите хост/порт).
-
Одобрите запрос на сопряжение на хосте gateway:
openclaw nodes pending
openclaw nodes approve <requestId>
- Проверьте соединение:
openclaw nodes status
openclaw gateway call node.list --params "{}"
Пути обнаружения
Bonjour (LAN)
Gateway рекламирует _openclaw-gw._tcp на local.. iOS-приложение автоматически их перечисляет.
Tailnet (между сетями)
Если mDNS заблокирован, используйте зону unicast DNS-SD (выберите домен; пример: openclaw.internal.) и split DNS Tailscale. См. Bonjour для примера CoreDNS.
Ручной хост/порт
В Settings включите Manual Host и введите хост gateway + порт (по умолчанию 18789).
Canvas + A2UI
iOS-нода рендерит WKWebView canvas. Используйте node.invoke для управления:
openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://<gateway-host>:18793/__openclaw__/canvas/"}'
Примечания:
- Canvas host Gateway обслуживает /__openclaw__/canvas/ и /__openclaw__/a2ui/.
- iOS-нода автоматически переходит к A2UI при подключении, когда рекламируется URL canvas host.
- Вернитесь к встроенному каркасу с помощью canvas.navigate и {"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"}'
Голосовое пробуждение + режим разговора
- Голосовое пробуждение и режим разговора доступны в Settings.
- iOS может приостанавливать фоновое аудио; рассматривайте голосовые функции как максимально возможные, когда приложение не активно.
Распространенные ошибки
- NODE_BACKGROUND_UNAVAILABLE: переведите iOS-приложение на передний план (команды canvas/camera/screen требуют этого).
- A2UI_HOST_NOT_CONFIGURED: Gateway не рекламировал URL canvas host; проверьте canvasHost в конфигурации Gateway.
- Запрос на сопряжение никогда не появляется: запустите openclaw nodes pending и одобрите вручную.
- Переподключение не работает после переустановки: токен сопряжения Keychain был очищен; повторно сопряжите ноду.