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