Внутренние объекты окна приложения A4
Что доступно внутри окна настольного A4, зачем это нужно и почему внутренний контракт окна не является публичным интерфейсом.
| Объект | Назначение | Примеры методов |
|---|---|---|
window.fastdocShell |
Документ, команды редактора, состояние, сохранение, меню | getState(), getCurrentDocumentTruth(), openDocxPath(), onStateChanged() |
window.a4Update |
Обновления приложения | status(), check(), start(), dismiss(), reveal(), openNotes(), onState() |
window.a4Help |
Версия и поддержка | version(), reportProblem(), supportBundle(), checkUpdates(), reportBadge(), onReportBadge() |
window.a4Vizor |
Заметки встроенной записи окна: она живёт в памяти вкладки около минуты и уходит только вместе с отчётом о проблеме | onNote() |
Примеры внутри окна самого приложения
Заголовок раздела «Примеры внутри окна самого приложения»const state = await window.fastdocShell.getState();const truth = await window.fastdocShell.getCurrentDocumentTruth();const version = await window.a4Help.version();
const stopState = window.fastdocShell.onStateChanged((next) => { console.log("document state", next);});
const stopUpdate = window.a4Update.onState((next) => { console.log("update state", next);});await window.a4Update.check();
// При размонтировании компонента обязательно отписаться.stopState();stopUpdate();Как выбрать правильный API
Заголовок раздела «Как выбрать правильный API»- Пишете своё настольное приложение или серверную обвязку —
fastdoc-cli serveс обменом строками JSON. - Оболочка на веб-технологиях и нужен асинхронный обмен —
serve --ws 0. - Нужно показать встраивание на машине пользователя — команда
surfaceи окно WebView илиiframe; правка в этой поверхности ограничена первым абзацем. - Ваш продукт живёт в браузере, а ядро должно работать на сервере — редактор в браузере.
- Дорабатываете само приложение A4 — внутренний контракт его окна, по отдельному согласованию.