MobiLauncher

Deploying via your MDM

MobiLauncher runs as a kiosk-mode WebView. If your MDM can push a managed-browser URL or install an APK, it can deploy the launcher.

What's verified today:

  • Standalone Android (sideload APK, locked-task kiosk) — works end-to-end on any Android 7+ device.
  • SOTI MobiControl Lockdown — tested end-to-end including File Sync for offline bundles. Has a dedicated agent-host implementation that surfaces extra Device Info fields when present.

What should work but isn't customer-verified yet:

  • Microsoft Intune, VMware Workspace ONE, Scalefusion, Hexnode, Esper, and any other kiosk-capable Android MDM.

The walkthroughs for those MDMs below describe the universal kiosk pattern — pointing a managed-browser app's homepage at your launcher URL — which is how the launcher is designed to integrate. We work with each beta customer to certify their specific MDM as part of onboarding. If you hit a wall, email [email protected] and we'll walk through it together.

Two deployment paths

  1. Hosted URL — point your MDM's kiosk WebView at https://app.mobilauncher.com/t/<your-tenant-id>. Device pulls the launcher fresh on every boot. Works on Free / Pro / Enterprise.
  2. Offline bundle (Pro+) — download a ZIP from the Portal that contains the renderer + your config + your signed license. Push it to the device via your MDM's File Sync (or equivalent), point the kiosk at file:///<path>/index.html. Survives no-network boots.

Use Hosted URL while you're evaluating + for any production fleet that's reliably online. Switch to Offline bundle when you've got real devices in real environments where DNS can take 10 seconds at power-on.


SOTI MobiControl

Detailed walkthrough in mobicontrol-setup.md. Short version:

  • Lockdown Profile → Launcher section → Web URL = your launcher URL
  • For Pro+ offline bundle: File Sync the unpacked ZIP to /sdcard/mobilauncher/, then Web URL = file:///sdcard/mobilauncher/index.html
  • Set "Disable browser controls" + "Allow file://" if you're going offline-bundle

That's it for SOTI. See the dedicated doc for the gotchas around device-specific MDM payloads (Zebra MX vs Samsung Knox, etc.).


Microsoft Intune

Intune doesn't have a single "kiosk URL" field — kiosk mode is configured through a Device configuration profile (Android Enterprise → Fully Managed or Dedicated Devices).

Hosted-URL path

  1. Endpoint Manager → Devices → Configuration profiles → Create profile
  2. Platform: Android Enterprise → Profile type: Device restrictions (for Dedicated Devices, pick the Dedicated Device template)
  3. Under Device experience → Kiosk mode, choose Single app kiosk
  4. Kiosk app: pick Managed Google Chrome (or any browser-app that supports a managed configuration homepage field)
  5. Managed configuration for the chosen browser:
    {
      "homepage": "https://app.mobilauncher.com/t/<your-tenant-id>",
      "default_search_provider_enabled": false
    }
    
  6. Assign to a device group and sync.

The device boots into Chrome, opens directly to your launcher, and the user can't leave it without admin gestures (PIN exit, etc., if you have Pro).

Offline-bundle path (Pro+)

  1. Use Intune File Distribution (or wrap the bundle as an inhouse MSIX/AppLink) to push the unpacked launcher ZIP to a known device path — typically /storage/emulated/0/Android/data/...launcher/.
  2. Configure the kiosk browser's homepage to file:///<that-path>/index.html.
  3. Allow file:// schemes in the managed browser config.

Intune's File Distribution is less ergonomic than SOTI File Sync — budget time for it.


VMware Workspace ONE

Hosted-URL path

  1. Workspace ONE UEM Console → Devices → Profiles → Add → Android
  2. Kiosk payload → Single App Mode
  3. App = Managed Chrome (or your packaged kiosk browser)
  4. App-level configuration (Custom Settings XML or via the AppConfig community schema):
    <managedAppConfiguration>
      <bundleId>com.android.chrome</bundleId>
      <dict>
        <string key="homepage">https://app.mobilauncher.com/t/&lt;your-tenant-id&gt;</string>
      </dict>
    </managedAppConfiguration>
    
  5. Assign profile to a Smart Group.

Offline-bundle path

Workspace ONE has a Files & Actions payload for file pushes. Unpack the launcher ZIP into a payload, target a path under /sdcard/, and point the kiosk browser at file://<path>/index.html.


Scalefusion

Scalefusion's UI is closer to "drop in a URL and you're done" than Intune's — appreciated.

Hosted-URL path

  1. Device Profiles → Add → Android Enterprise
  2. Toggle Kiosk Mode → Single App Kiosk
  3. Allowed App = Chrome (or any kiosk-capable browser)
  4. Under the browser's App Configuration, set:
    • homepage = your launcher URL
    • lockHomepage = true

That's the full setup for hosted-URL deployment. Scalefusion devices pick it up at next sync.

Offline-bundle path

Use File Sync under Application Management to push the unpacked launcher folder to a device path, then point the kiosk homepage at file:///<path>/index.html.


Hexnode

Hosted-URL path

  1. Policies → New Policy → Android → Kiosk → Browser Kiosk
  2. Launch URL = your launcher URL
  3. Save and target the policy at a device group.

Hexnode's Browser Kiosk wraps your URL in a locked Chrome instance — no extra app-config gymnastics.

Offline-bundle path

File Management → Push File the unpacked launcher folder. Then under the same Browser Kiosk policy, set Launch URL to file:///<your-pushed-path>/index.html.


Esper

Esper exposes a Kiosk mode under device-level configuration plus a robust file-push API.

Hosted-URL path

  1. Devices → select device or group → Kiosk Mode → Configure
  2. Kiosk App = a browser app that supports kiosk URL config
  3. Browser configuration → homepage = your launcher URL

Offline-bundle path

Use Esper's Foyer / Multi-App mode to deploy the unpacked bundle as a static-file asset, then point the kiosk app at the local path.

For larger fleets, Esper's API is scriptable — config + bundle distribution can be automated outside the console if you prefer.


Universal pattern (any other MDM)

Whatever your MDM is called, the recipe is the same:

  1. Pick a kiosk app the MDM can lock the device to. A managed Chrome / managed WebView / kiosk-browser app — anything that accepts a URL config or app-managed-configuration value.

  2. Configure the kiosk app's home URL:

    • Online: https://app.mobilauncher.com/t/<your-tenant-id>
    • Offline-bundle (Pro+): file:///<pushed-bundle-path>/index.html
  3. Restrict the device so the user can't leave the kiosk app (single-app mode, lock task, etc.).

  4. Optional: enable file pushes if you're going offline-bundle. Most MDMs have some file-distribution payload.

If you hit a wall on your specific MDM, email [email protected] with the MDM name and we'll work it out. We add new MDM walkthroughs based on what real customers actually use.


Troubleshooting

Common issues across all MDMs:

  • Blank screen: kiosk app probably blocked the launcher's JS or cookies. Whitelist app.mobilauncher.com in the app config.
  • "Can't connect" on first boot: kiosk app started before the network. Add a retry delay in the MDM kiosk policy, or switch to the offline bundle.
  • Bell icon never shows broadcasts: tenant doesn't have the broadcasts flag enabled (Builder → Features tab). Toggle it on
    • republish.
  • Configs save in Portal but device shows old layout: the launcher fetches the config on every boot. For Pro+ remote-config push, devices poll the config endpoint every 60s and apply changes without a reboot.

Full list: troubleshooting.md.