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
- 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. - 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
- Endpoint Manager → Devices → Configuration profiles → Create profile
- Platform: Android Enterprise → Profile type: Device restrictions (for Dedicated Devices, pick the Dedicated Device template)
- Under Device experience → Kiosk mode, choose Single app kiosk
- Kiosk app: pick Managed Google Chrome (or any browser-app
that supports a managed configuration
homepagefield) - Managed configuration for the chosen browser:
{ "homepage": "https://app.mobilauncher.com/t/<your-tenant-id>", "default_search_provider_enabled": false } - 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+)
- 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/. - Configure the kiosk browser's
homepagetofile:///<that-path>/index.html. - 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
- Workspace ONE UEM Console → Devices → Profiles → Add → Android
- Kiosk payload → Single App Mode
- App = Managed Chrome (or your packaged kiosk browser)
- 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/<your-tenant-id></string> </dict> </managedAppConfiguration> - 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
- Device Profiles → Add → Android Enterprise
- Toggle Kiosk Mode → Single App Kiosk
- Allowed App = Chrome (or any kiosk-capable browser)
- Under the browser's App Configuration, set:
homepage= your launcher URLlockHomepage=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
- Policies → New Policy → Android → Kiosk → Browser Kiosk
- Launch URL = your launcher URL
- 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
- Devices → select device or group → Kiosk Mode → Configure
- Kiosk App = a browser app that supports kiosk URL config
- 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:
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.
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
- Online:
Restrict the device so the user can't leave the kiosk app (single-app mode, lock task, etc.).
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.comin 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
broadcastsflag 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.