Ir al contenido

iOS App (Node)

Conectar hardware móvil a tu flujo de trabajo de desarrollo suele ser un dolor de cabeza. A veces pasas más tiempo peleando con la configuración de red o los permisos que probando tu código. Esta guía te ayuda a integrar tu iPhone o iPad como un Node funcional en pocos minutos.

Nota: Esta función está en internal preview. La app de iOS aún no se distribuye de forma pública.

  • Gateway ejecutándose en otro dispositivo (macOS, Linux o Windows vía WSL2).
  • Una ruta de red válida (LAN vía Bonjour, Tailnet o configuración manual).

Sigue estos cuatro pasos para vincular tu dispositivo y empezar a enviar comandos:

  1. Inicia el Gateway:

    Ventana de terminal
    openclaw gateway --port 18789
  2. Configura la App: En la app de iOS, abre Settings y selecciona un Gateway detectado. Si no aparece, activa Manual Host e ingresa la IP y el puerto.

  3. Aprueba la vinculación: En la máquina donde corre el Gateway, acepta la solicitud:

    Ventana de terminal
    openclaw nodes pending
    openclaw nodes approve \<requestId\>
  4. Verifica la conexión: Comprueba que el Node esté activo:

    Ventana de terminal
    openclaw nodes status
    openclaw gateway call node.list --params "{}"

Para que la app encuentre el Gateway, tienes estas cuatro opciones:

  • Bonjour (LAN): El Gateway se anuncia como _openclaw-gw._tcp en local. y la app lo detecta automáticamente.
  • Tailnet: Si usas Tailscale, configura una zona DNS-SD unicast (ejemplo: openclaw.internal.).
  • Manual Host: Activa esta opción en Settings para ingresar la dirección IP directamente.
  • Manual Port: Define el puerto específico si no usas el predeterminado 18789.

El Node de iOS renderiza un canvas mediante WKWebView. Puedes controlarlo con el comando node.invoke:

Ventana de terminal
openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://\<gateway-host\>:18793/__openclaw__/canvas/"}'

Ten en cuenta estos puntos:

  • El host del Gateway sirve el contenido en /__openclaw__/canvas/ y /__openclaw__/a2ui/.
  • La app va automáticamente a A2UI al conectar si el Gateway anuncia una URL de canvas.
  • Para volver al scaffold integrado, usa canvas.navigate con una URL vacía "".
  • Usa canvas.eval para ejecutar JavaScript o canvas.snapshot para capturas de pantalla.

Ejecutar JavaScript:

Ventana de terminal
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\"; })()"}'

Captura de pantalla:

Ventana de terminal
openclaw nodes invoke --node "iOS Node" --command canvas.snapshot --params '{"maxWidth":900,"format":"jpeg"}'

Puedes activar Voice wake y el modo talk en los Settings de la app. Considera que iOS puede suspender el audio en segundo plano; estas funciones de voz funcionan mejor cuando la app está activa y en primer plano.

  • NODE_BACKGROUND_UNAVAILABLE: La app debe estar en primer plano para usar comandos de canvas, cámara o pantalla.
  • A2UI_HOST_NOT_CONFIGURED: El Gateway no anunció una URL; revisa el parámetro canvasHost en tu configuración.
  • La solicitud de vinculación no aparece: Ejecuta manualmente openclaw nodes pending para ver las peticiones.
  • Falla la reconexión tras reinstalar: Si reinstalas la app, el token del Keychain se borra. Debes vincular el Node de nuevo.

Si necesitas ayuda con la configuración, consulta al AI Setup Assistant.

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.