Приложение iOS (узел)¶
Доступность: внутренний превью. Приложение iOS пока не распространяется публично.
Что оно делает¶
- Подключается к Gateway (шлюз) по WebSocket (LAN или tailnet).
- Предоставляет возможности узла: Canvas, снимок экрана, захват с камеры, местоположение, режим разговора, голосовую активацию.
- Принимает команды
node.invokeи отправляет события состояния узла.
Требования¶
- Gateway (шлюз), запущенный на другом устройстве (macOS, Linux или Windows через WSL2).
- Сетевой путь:
- Та же LAN через Bonjour, или
- Tailnet через одноадресный 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 заблокирован, используйте одноадресную зону DNS-SD (выберите домен; пример: openclaw.internal.) и split DNS в Tailscale.
См. Bonjour для примера CoreDNS.
Ручной хост/порт¶
В Settings включите Manual Host и введите хост шлюза Gateway и порт (по умолчанию 18789).
Canvas + A2UI¶
Узел iOS рендерит canvas в WKWebView. Используйте node.invoke для управления им:
openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://<gateway-host>:18793/__openclaw__/canvas/"}'
Примечания:
- Хост canvas шлюза Gateway обслуживает
/__openclaw__/canvas/и/__openclaw__/a2ui/. - Узел iOS автоматически переходит к A2UI при подключении, если объявлен URL хоста canvas.
- Возврат к встроенному шаблону выполняется с помощью
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 может приостанавливать фоновое аудио; рассматривайте голосовые функции как best‑effort, когда приложение не активно.
Частые ошибки¶
NODE_BACKGROUND_UNAVAILABLE: переведите приложение iOS на передний план (команды canvas/камеры/экрана требуют этого).A2UI_HOST_NOT_CONFIGURED: Gateway (шлюз) не объявил URL хоста canvas; проверьтеcanvasHostв Конфигурация шлюза Gateway.- Окно сопряжения не появляется: выполните
openclaw nodes pendingи подтвердите вручную. - Повторное подключение не удаётся после переустановки: токен сопряжения в Keychain был очищен; выполните повторное сопряжение узла.