RCWeb v-c

The RCWeb v-c App (app/v-c) is a mobile-styled controller for the Viewer (v) app, built on UIKit to look and feel like a native mobile application. It implements the same Asymmetric (Sender/Viewer) pattern as the original c controller — converting user gestures into JavaScript payloads sent to viewer (v) apps in the same room.

icon

Screenshot

screenshot

What it does

  • Mobile UI on UIKit: Sticky top app bar, off-canvas side menu, segmented section tabs, mobile-optimized cards, and touch-friendly buttons. Reset and other tools live in the off-canvas side menu.
  • Grouped functionality: Controls are organized into five clear sections — Display, Media, Web, Code, and Apps — each shown one-at-a-time with smooth transitions.
  • Categorized App Launchpad: All available RCWeb apps are surfaced as an icon grid grouped into Games, Media & Broadcast, Collaboration, and Tools. A pill filter bar lets the user narrow the list.
  • Same proven core: Solid color, image (URL/upload), video (URL/upload), iframe embed, redirect, raw HTML, raw JavaScript, app launch, and reset — all behaving identically to the original c app.
  • Streaming uploads: Reuses the chunked file streaming logic — small files become Base64 data URLs; files ≥ 1 MB stream peer-to-peer via the /x-file/... proxy route.

How it works

The app shares its execution model with c:

  • loadControls() sets default URLs, wires up segment-nav clicks, off-canvas menu items, app filter pills, and connects via rc.connect().

  • Action handlers (showColor, showImage, showVideo, showHtml, showIFrame, redirect, showApp, reset, sendJavaScriptArea) build a JavaScript payload and dispatch it to the room with rc.send(js, "v") — or, for app switches, rc.send(js, "!c,*-c").

  • activateSection(name) swaps the visible section, updates the URL hash, and keeps the segmented tab and side-menu link state in sync.

  • applyAppFilter(filter) toggles c2-hidden on each launchpad group so users can quickly find what they want.

  • The connection light in the top bar (a bolt icon) flips between online/offline tints based on rc.onUpdateNetworkStatus, and the off-canvas menu mirrors the same status text.

Differences from c

  • Uses UIKit components (navbar, off-canvas, dropdown, icon set, button/input/textarea classes) and adds a custom mobile-app stylesheet on top.
  • Sections are shown one at a time via a segmented top tab bar with icon labels rather than the original tab strip.
  • The app launcher is split into groups with a filter pill bar instead of a single horizontal scroller.
  • A floating action button surfaces Reset permanently in the bottom-right corner.
  • The PWA window opens taller (430×760) to better resemble a phone.
  • The app's name (v-c) is matched by the *-c wildcard, so the exclusion list for app-switch / reset commands simplifies from "!c,c2,*-c" to "!c,*-c".
DocumentationServer TelemetryServer StatsServer HTTP LogServer WebSocket Log