# iOS App (Node) ## Overview The iOS app connects to a Gateway via WebSocket, exposing node capabilities including Canvas rendering, screen snapshots, camera capture, location access, and voice features. ## Key Requirements A Gateway must run on a separate device (macOS, Linux, or Windows via WSL2). Connection options include same-network Bonjour discovery, Tailnet via DNS-SD, or manual host/port entry. ## Setup Process Users start the Gateway on port 18789, select it in iOS Settings, then approve the pairing request via command line. The `openclaw nodes status` command verifies successful connection. ## Discovery Methods The system supports three connection approaches: - **Bonjour**: Advertises `_openclaw-gw._tcp` on `local.` for LAN environments - **Tailnet**: Uses unicast DNS-SD for cross-network scenarios - **Manual**: Configuration as a fallback ## Canvas Functionality The iOS node uses WKWebView for rendering. Users can navigate to URLs, execute JavaScript through `canvas.eval`, and capture snapshots using the node invocation system. ## Voice Capabilities Voice wake and talk mode options appear in Settings, though background audio suspension may limit reliability when the app isn't active. ## Troubleshooting Common issues include: - `NODE_BACKGROUND_UNAVAILABLE` - Requires foreground app status - Missing canvas host configuration - Pairing prompts not appearing - Reconnection failures after reinstall due to cleared Keychain tokens