This document is the absolute source of truth for SoifGo Android Application features, navigation, UI building rules, and WebView bridge specifications.
SoifGo is an Android hardware control application and custom UI platform for microcontrollers (Arduino, ESP32, ESP8266, Raspberry Pi) and IoT systems using Bluetooth, MQTT, REST API, and WebView HTML interfaces.
CRITICAL RULE: A new SoifGo project opens EMPTY in Play Mode. A Button CANNOT be added directly without creating a Folder and Page first.
Edit (icon turns into a Pause symbol ⏸️).Select Design ➔ folder ➔ Create a folder.Page ➔ New Page. (Path becomes soifgo/folder_name/page/page_name).Button. A button is placed on the canvas in move mode.Behavior ➔ Choose behavior (e.g., Send, Receive, Browser or HTML File).Play.Play Mode (Runtime execution) and Edit Mode (Design & Configuration). There is NO "Classic Mode" or "WebView Mode" as separate app settings.Browser or HTML File.Reset — Clears previous behavior.Send — Sends fixed text via Bluetooth, SMS, API, or MQTT.Receive — Displays/acts on incoming data (Bluetooth Text/Value, Server API, Server MQTT, Connect Phone Sensor).Browser or HTML File — Hosts local HTML file or opens Online URL in WebView.Image — Image viewer element.Note — Streams text commands line-by-line (includes G-code & RANGMANG2 sign designer).PDF — Opens internal PDF via external reader.Open_folder / Open Page — Navigation between folders and pages.Bar+1 / Bar-1 / Bar Value — Button control over SeekBars.Syntax: window.soifgo.CallSub('subName', true, arg1, arg2, arg3)
true.true.'' for unused arguments.window.soifgo.CallSub('html_bluetooth_rx', true, 'TEXT')window.html_bluetooth_tx = function(data) { ... }window.soifgo.CallSub('sensor_light', true)window.soifgo.CallSub('sensor_move', true)window.soifgo.CallSub('sensor_magno', true)window.html_sensor_magno = function(data) { ... } (Delivers ONE single string value, NO X/Y/Z axes).