Webview Kiosk is a free and open-source Android application for secure, kiosk-style web browsing.

It can function as digital signage, a kid-friendly restricted browser, an immersive web reader, an interactive sign-up form, a home assistant dashboard, or simply a wall clock.

Designed for small businesses and device owners who are looking for a simple and standalone Kiosk solution.

### Key Features

#### Core / Standalone

- <b>Lock Task Mode (Pin):</b> prevent access to your device's home screen, apps and status bar
- <b>Secure Settings:</b> configurations are protected by biometrics, device credentials or custom password
- <b>URL Filtering:</b> use regular expressions to control web access through a URL blacklist and whitelist
- <b>Export/Import:</b> backup and restore user settings in Base64 or JSON format
- <b>Local files:</b> display an image, audio, video, or HTML file in kiosk mode from your device
- <b>Default Launcher:</b> use as the home app and launch other apps in lock task mode (kiosk)

#### Remote Management / Enterprise

- <b>Message Queuing Telemetry Transport (MQTT)</b>
  - Monitor events, update settings, execute commands and build custom automations using the API
  - Requires an MQTT broker (e.g. Mosquitto, EMQX or HiveMQ)
- <b>Managed Configurations (App Restrictions)</b>
  - For fully-managed (company-owned) devices, settings can be remotely configured via an MDM/EMM provider
  - Advanced users using a device policy controller (e.g. Test DPC or OwnDroid) can also enforce configurations locally

For more details, visit the official documentation:

- https://webviewkiosk.nktnet.uk

### Permissions

- <b>INTERNET</b>: for general web browsing
- <b>CAMERA</b>: (optional) for use with web apps that requires photo/video capture
- <b>RECORD_AUDIO</b>: (optional) for use with web apps that requires audio capture
- <b>MODIFY_AUDIO_SETTINGS</b>: for routing audio (microphone will not work without this)
- <b>ACCESS_FINE_LOCATION</b>: (optional) for web apps that needs precise geolocation
- <b>ACCESS_COARSE_LOCATION</b>: (optional) for web apps that needs approximate geolocation
- <b>QUERY_ALL_PACKAGES</b>: to find launchable apps, device owners and lock task packages
- <b>POST_NOTIFICATIONS</b>: (optional) for lock task mode (kiosk) launches and MQTT
- <b>FOREGROUND_SERVICE</b>: for persistent notification and management with lock task and MQTT
- <b>FOREGROUND_SERVICE_SPECIAL_USE</b>: provides a return mechanism for opening apps in kiosk
- <b>USE_BIOMETRIC</b>: replaces USE_FINGERPRINT from Android 9 onwards
- <b>USE_FINGERPRINT</b>: use fingerprint hardware when accessing settings or unlocking kiosk
- <b>WAKE_LOCK</b>: to optionally wake the screen when receiving MQTT commands
- <b>API (Dhizuku)</b>: to request shared device owner privileges

### Contact

#### Questions/Feature Requests

Create a `Q&A` for questions and `Ideas` for feature requests on GitHub discussions:

- https://github.com/nktnet1/webview-kiosk/discussions

#### Bugs/Issues

Report bugs by creating a GitHub issue describing the problem and how it can be reproduced:

- https://github.com/nktnet1/webview-kiosk/issues

Please also include your device model, app version and android version.

#### Other

For all other enquiries, please reach out to:

```
support@webviewkiosk.nktnet.uk
```
