Перейти к содержимому
FastOffice

Surface: встраивание и события сегодня

Запуск Surface Host, mount/unmount и получение host events — что работает в текущей сборке.

ТЕКУЩИЙ E3/E4 BOUNDARY

Окно терминала
target/debug/A4-cli surface --port 0 \
--doc /data/input.docx --save /data/output.docx
# первая строка stdout: A4.surface-host-bootstrap.v1
# загрузить bootstrap.url в WKWebView / WebView2 / browser host

ТЕКУЩИЙ BROWSER ENTRY POINT

const handle = window.a4Surface.mount(container, {
theme: "light",
locale: "ru",
readOnly: false,
cssVariables: { "--A4-accent": "#2f5bff" }
});
// при закрытии вкладки или документа
handle.unmount();

GENERIC BROWSER HOST

window.addEventListener("A4-host-event", (event) => {
const message = event.detail;
if (message.schema !== "A4.surface-host-event.v1") return;
switch (message.type) {
case "ready": console.log(message.documentPath); break;
case "dirty": setUnsavedBadge(message.dirty); break;
case "saved": console.log(message.path, message.byteCount); break;
case "error": showError(message.operation, message.message); break;
case "unmounted": releasePartnerResources(); break;
}
});
Среда Канал события
WKWebView WKScriptMessageHandler: a4Host
WebView2 window.chrome.webview / WebMessageReceived
Browser harness DOM CustomEvent: A4-host-event
Честный статус Surface Host Сегодня это bounded переносимая поверхность с mount/unmount и событиями ready/dirty/saved/error/unmounted. Она доказывает границу интеграции, но ещё не является полным внешним API всех функций редактора или расширений контекстного меню.

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.