Introduction
Unifinity Application Player comes in two forms: a native version that you install on each OS (iOS / Android / Windows), and a Web version that runs in a web browser.
The advantage of the Web version is portability: it requires no installation and runs as long as you have a browser. However, because it runs in the browser's sandbox, some features that depend on the device's hardware or OS functions are restricted, and it does not provide the same functionality as the native version.
This guide summarizes the points where behavior differs from the native version, and the features that are unavailable, when you run a Unifinity app in the Web version. Use it as a reference when designing your apps.
🛠 This guide is intended for app developers. The Web version is meant for developers to quickly check things such as layout. End users are expected to run apps in the native version.
📌 The Web version cannot run every Unifinity app, and it provides only limited functionality. If an app does not start or does not work correctly on the Web, try running it in the native app, "Unifinity Application Player."
1. Differences in Operating Environment and Getting Started
| Item | Native version | Web version |
|---|---|---|
| Operating environment | Install the app on iOS / Android / Windows | A recent web browser (Chrome / Edge / Firefox / Safari). WebGL 1.0 support is required. |
| Distribution and installation | Distributed and installed as an app for each OS | No installation required |
| Delivery method | Each platform's store or installer | Access through an HTTP server is required |
| Offline operation | Possible | Not possible (you must be online to start, fetch the UAP, and communicate; only saved data is kept offline) |
2. Differences in How Apps Are Loaded
| Item | Native version | Web version |
|---|---|---|
| Starting an app | Select an app from the app list to start it | Start it from the portal |
| Managing UAPs from within an app | You can list, update, and delete UAPs | Not supported |
3. Feature Differences
Legend: ○ Available / △ Limited / ✕ Not available
Device and Hardware Integration
| Feature | Native | Web version | Notes |
|---|---|---|---|
| GPS / location | ○ | ✕ | |
| Bluetooth (BLE) | ○ | ✕ | |
| NFC | ○ | ✕ | |
| COM (serial communication) | ○ | ✕ | |
| Making phone calls | ○ | ✕ | |
| Vibration | ○ | ✕ | |
| Battery level and charging status | ○ | ✕ | |
| Receiving push notifications | ○ | ✕ | |
| iBeacon / Eddystone | ○ | ✕ | |
| Sound playback | ○ | ✕ | |
| Video playback and recording | ○ | ✕ | |
| Integration with other apps | ○ | ✕ | |
| Printing | ○ | ✕ | |
| Locking screen orientation (portrait/landscape) | ○ | ✕ | Depends on the browser |
| Taking photos with the camera | ○ | △ | Supported through the browser's camera |
| Reading and generating QR codes | ○ | △ | |
| Selecting and loading images | ○ | △ | |
| Composing email | ○ | ✕ | mailto: only. Attachments are not supported. |
| Opening files in an external app / displaying PDFs | ○ | △ | Displayed in a separate browser tab. |
| Getting the device ID | ○ | △ | Fixed value |
| Getting signal status | ○ | △ | Online/offline only |
| Getting the phone number | ○ | ✕ |
Business Features and Integration
| Feature | Native | Web version |
|---|---|---|
| Excel operations | ○ (Windows) | ✕ |
| Folder selection dialog | ○ | ✕ |
| File selection dialog | ○ | ✕ |
| Internal browser display | ○ | ✕ |
| PDF export | ○ | ○ |
| Timer | ○ | ✕ |
| Asynchronous execution | ○ | ○ |
4. Differences in Network Communication
Communication in the Web version is implemented using the browser's networking, so it has the following restrictions compared with the native version (libcurl).
| Item | Native version | Web version |
|---|---|---|
| UI during communication | Runs on a separate thread, and the UI remains operable | The browser screen freezes temporarily during communication |
| CORS restrictions | None | Yes. For cross-origin APIs, the server must return the appropriate CORS headers, and APIs that do not return them cannot be called |
| SMTP | ○ | ✕ |
| Proxy settings | ○ | ✕ |
| OAuth2 | ○ | ✕ |
| Detailed settings such as Keep-Alive | ○ | ✕ |
5. Differences in Data Storage
The native version saves data to the OS file system, so it persists permanently. The Web version saves data to the browser's storage (IndexedDB). Keep the following points in mind.
- In private/incognito mode, data may not be saved, or may disappear when you close the tab.
- If you use the browser's "Clear site data" or "Clear browsing history," all saved data is deleted.
- Saving may fail if you exceed the browser's storage limit (quota).
- If you close the tab before a save finishes, your most recent changes may be lost.
- The Player's settings and login information are also stored in the browser (localStorage).
We recommend designing your app so that important data is always saved and synchronized on the server side. Treat the browser's local storage as temporary and dependent on the device.
6. Differences in Display and Fonts
- The Web version uses WebGL 1.0. It cannot start in older browsers that do not support WebGL 1.0.
- The screen is scaled automatically while keeping its aspect ratio (the margins are shown as letterboxing).
- Only fonts bundled at build time can be used. You cannot add fonts or load them dynamically at runtime.
- With the currently bundled fonts, glyphs for some languages, such as Thai and Tamil, may not be displayed. If you provide a multilingual app in the Web version, check that each target language displays correctly.
7. Differences in Input
- Multi-touch and pen pressure are not supported (input is treated as a single pointer). Mouse and touch input are treated the same.
- The screen follows changes to the browser window size automatically.
8. Other Notes
- Heavy processing and communication freeze the browser temporarily (because the Web version runs on a single thread). Avoid long waiting operations.
- The app's "Exit" operation ends the app in the native version, but in the Web version it returns to the file selection screen (or notifies the caller).
- Very large .uap files and large amounts of data are affected by the browser's memory and storage limits.
9. Frequently Asked Questions
- Q. Will an app that ran in the native version run as-is in the Web version?
- A. The basic features for screens, logic, and the database run on a common engine. However, if an app uses a feature marked "✕" in this guide, that part of the app will not work. Check the feature differences beforehand.
- Q. If I change PCs, will the data I saved in the Web version carry over?
- A. No. Data is stored per browser and per device. To use data across devices, you need to save and synchronize it on the server side.
- Q. I cannot connect to an external API.
- A. A CORS restriction is the most likely cause. Check whether the API you are connecting to supports CORS.