App iOS (Nó)¶
Disponibilidade: prévia interna. O app iOS ainda não é distribuído publicamente.
O que ele faz¶
- Conecta-se a um Gateway via WebSocket (LAN ou tailnet).
- Expõe capacidades do nó: Canvas, Captura de tela, Captura de câmera, Localização, Modo de conversa, Ativação por voz.
- Recebe comandos
node.invokee reporta eventos de status do nó.
Requisitos¶
- Gateway em execução em outro dispositivo (macOS, Linux ou Windows via WSL2).
- Caminho de rede:
- Mesma LAN via Bonjour, ou
- Tailnet via DNS-SD unicast (domínio de exemplo:
openclaw.internal.), ou - Host/porta manual (fallback).
Início rápido (parear + conectar)¶
- Inicie o Gateway:
openclaw gateway --port 18789
-
No app iOS, abra Ajustes e escolha um gateway descoberto (ou ative Host Manual e informe host/porta).
-
Aprove a solicitação de pareamento no host do gateway:
openclaw nodes pending
openclaw nodes approve <requestId>
- Verifique a conexão:
openclaw nodes status
openclaw gateway call node.list --params "{}"
Caminhos de descoberta¶
Bonjour (LAN)¶
O Gateway anuncia _openclaw-gw._tcp em local.. O app iOS lista esses automaticamente.
Tailnet (entre redes)¶
Se o mDNS estiver bloqueado, use uma zona DNS-SD unicast (escolha um domínio; exemplo: openclaw.internal.) e DNS dividido do Tailscale.
Veja Bonjour para o exemplo do CoreDNS.
Host/porta manual¶
Em Ajustes, ative Host Manual e informe o host + porta do gateway (padrão 18789).
Canvas + A2UI¶
O nó iOS renderiza um canvas WKWebView. Use node.invoke para controlá-lo:
openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://<gateway-host>:18793/__openclaw__/canvas/"}'
Notas:
- O host de canvas do Gateway serve
/__openclaw__/canvas/e/__openclaw__/a2ui/. - O nó iOS navega automaticamente para o A2UI ao conectar quando um URL de host de canvas é anunciado.
- Retorne ao scaffold integrado com
canvas.navigatee{"url":""}.
Avaliação do canvas / 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"}'
Ativação por voz + modo de conversa¶
- Ativação por voz e modo de conversa estão disponíveis em Ajustes.
- O iOS pode suspender o áudio em segundo plano; trate os recursos de voz como melhor esforço quando o app não estiver ativo.
Erros comuns¶
NODE_BACKGROUND_UNAVAILABLE: traga o app iOS para o primeiro plano (comandos de canvas/câmera/tela exigem isso).A2UI_HOST_NOT_CONFIGURED: o Gateway não anunciou um URL de host de canvas; verifiquecanvasHostem Configuração do Gateway.- O prompt de pareamento nunca aparece: execute
openclaw nodes pendinge aprove manualmente. - A reconexão falha após reinstalar: o token de pareamento do Keychain foi limpo; repareie o nó.