Skip to Content
Web Multiplatform Bridge
App icon

Web Multiplatform Bridge

¥ 800.00
v 19.0 0
One-Time Purchase
Technical Name
eist_web_multiplatform
License
Other proprietary
Also available in version
v 19.0

EIST Web Multiplatform for Odoo 19

Use this module together with the Odoo desktop clientThe client holds the signed-in accounts, print, display and scale services, and the registered devices. Odoo opens inside that window. Once the client is there, the navbar plug reports "External application detected", and backend reports can print through the host.

Host bridge

Methods appear only when the app lists them. Downloads, accounts, the reader and the back button use the same rule.

Native printing

PDF and text reports call printFile. If the app cannot print, Odoo warns and falls back to download.

Visible status

A navbar plug shows whether an external app was detected. A normal browser stays "not detected".

Home, services and devices

Home lists signed-in users, running services and registered devices. Services are the printers, display and scale. Devices are the hardware you register.

Session, language, theme and about

From the window toolbar you switch the signed-in account, the interface language, the theme color and dark mode, and you open About.

Settings

System sets the JS bridge port and the UI font. Languages, logs and ESC/POS print options are the other settings pages.

Odoo in the client

Odoo opens in the client window. The navbar plug reports that the external application was detected. Client tools stay beside the Odoo page.

Host bridge

core.js follows the Flet / multi-platform host bridge. It does not invent a second protocol.

  • The shell injects window.OdooDeviceUtility at document start, before this script runs.
  • list_plugins() returns [{name, action}, …]. Each name becomes a method; action is what execute receives.
  • execute(action, argsJson, requestId) is answered by odoo.native_notify. success: true resolves the promise; anything else rejects it.
  • On WebKit, the bare global can be invisible inside an ES module, so the bridge also reads window.OdooDeviceUtility and can hydrate again if the shell attaches late.
  • Call a method only after it exists. In a normal browser there is no utility object, so the method table stays empty.

Backend report printing

Availability is only "did the host inject printFile?". It does not look at screen size or the user agent. The same check covers desktop and mobile shells (Windows, Linux, macOS, Android, iOS) when that plugin is listed.

  • Report actions qweb-pdf and qweb-text are sent to printFile with the report URL, name, CSRF token and context. PDF still requires a working wkhtmltopdf status (ok or upgrade).
  • If native print fails, the user gets a warning and the handler returns so Odoo can download the report. A one-shot skip stops that download from calling printFile again.
  • A direct /report/download request tries printFile first, then the host download (or the browser, if there is no host).
  • The handler does not replace device direct-print when printFile is absent: it returns and leaves the job to Odoo.

Downloads through the host

When the host lists downloadFile, backend downloads (including the print fallback) go to the app download manager. The URL is reduced to path, query and hash, and the CSRF token is attached. The call does not block the web client. With no plugin, Odoo's own download runs instead.

Account, shortcut, reader and back

These items are registered only when the matching plugin is in list_plugins(). They do not show up in a plain browser.

  • Switch/Add Account replaces Log out and the Odoo account menu entry and calls switchAccount.
  • Add to Home Screen sends the current app title, URL and web icon to addHomeShortcut.
  • Account sync pushes name, username and a 128px avatar (image_medium, related to avatar_128) through updateAccount when preferences are saved.
  • Reader — the mobile service (kept under that name for POS and other callers) starts enableReader and polls getReaderData while something is listening, then stops the reader.
  • Back button — overrideBackButton is reference-counted. Popovers close on the host back key while they are open.
  • Errors — uncaught frontend errors are forwarded to crashManager when that plugin exists.
  • If the host provides hashChange, route changes are reported on popstate.

Desktop client

This module is meant to be used with the Odoo desktop client. The client keeps the signed-in accounts, the print, display and scale services, and the registered devices. Odoo itself opens inside that window.

Systray host indicator

Inside the client, the navbar plug means an external app was detected because it injected printFile. Clicking it refreshes the check and shows "External application detected". A normal browser has no OdooDeviceUtility, so the same plug stays "not detected".

Point of Sale assets

POS does not load the backend asset bundle. This module adds core.js and print_bridge.js to point_of_sale._assets_pos so a POS module can import printFile and hydrate the bridge. Receipt, cash drawer and customer-display behaviour live in those POS modules, not here.

FAQ

Does a normal browser get native print and downloads?
No. Without OdooDeviceUtility the methods are missing. Downloads use Odoo, reports are not sent to printFile, and the systray says the external app was not detected.

Can it be installed with web_mobile?
No. This module excludes web_mobile and eist_web_mobile. Do not install both bridges in the same database.

Does the public package replace an Enterprise module?
It does not declare an Enterprise substitute. It depends on web and eist_erp_base.

Which host methods does this module call itself?
printFile, downloadFile, switchAccount, addHomeShortcut, updateAccount, enableReader, getReaderData, overrideBackButton, hashChange and crashManager — each only if the host listed it. Toast, vibration, barcode scan and push tokens are host plugins; this module does not add screens for them.

Need help?

  • Technical name: eist_web_multiplatform
  • Depends: eist_erp_base, web
  • Excludes: web_mobile, eist_web_mobile
  • Version: 19.0.0.1
  • License: Other proprietary — EIST Technology Co., Ltd.
  • Website: https://eist.com.cn

Premium EIST module. The screenshots show the desktop app and Odoo running inside it. Requires the Odoo desktop client.

License

Other proprietary

Depends Modules

Official modules
web
EIST modules
eist_erp_base