Web Multiplatform Bridge
- 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".
Host bridge
core.js follows the Flet / multi-platform host bridge. It does not invent a second protocol.
- The shell injects
window.OdooDeviceUtilityat document start, before this script runs. list_plugins()returns[{name, action}, …]. Eachnamebecomes a method;actionis whatexecutereceives.execute(action, argsJson, requestId)is answered byodoo.native_notify.success: trueresolves the promise; anything else rejects it.- On WebKit, the bare global can be invisible inside an ES module, so the bridge also reads
window.OdooDeviceUtilityand 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-pdfandqweb-textare sent toprintFilewith the report URL, name, CSRF token and context. PDF still requires a working wkhtmltopdf status (okorupgrade). - 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
printFileagain. - A direct
/report/downloadrequest triesprintFilefirst, then the host download (or the browser, if there is no host). - The handler does not replace device direct-print when
printFileis 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 toavatar_128) throughupdateAccountwhen preferences are saved. - Reader — the
mobileservice (kept under that name for POS and other callers) startsenableReaderand pollsgetReaderDatawhile something is listening, then stops the reader. - Back button —
overrideBackButtonis reference-counted. Popovers close on the host back key while they are open. - Errors — uncaught frontend errors are forwarded to
crashManagerwhen that plugin exists. - If the host provides
hashChange, route changes are reported onpopstate.
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.
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