API general
La API Facade disponible en Univer depende del tipo de unidad actual y de los complementos registrados. Esta página presenta las API comunes de una aplicación Univer Boards.
Importación
import { FUniver } from '@univerjs/core/facade'import '@univerjs-pro/boards/facade'const univerAPI = FUniver.newAPI(univer)Comandos
La mayoría de las operaciones de Univer se registran en el sistema de comandos. Esta ruta de ejecución unificada permite funciones como deshacer, rehacer y la colaboración.
Para conocer el diseño con más detalle, consulte el sistema de comandos de Univer.
Escuchar comandos
Use Event.BeforeCommandExecute para ejecutar lógica antes de un comando y Event.CommandExecuted para ejecutarla cuando termine.
const beforeDisposable = univerAPI.addEvent(univerAPI.Event.BeforeCommandExecute, ({ id, params }) => { console.log('Antes del comando:', id, params)})const afterDisposable = univerAPI.addEvent(univerAPI.Event.CommandExecuted, ({ id, params }) => { console.log('Comando ejecutado:', id, params)})Para impedir que se ejecute un comando, establezca event.cancel en true desde un listener de BeforeCommandExecute.
const disposable = univerAPI.addEvent(univerAPI.Event.BeforeCommandExecute, (event) => { if (event.id === 'board.command.set-name') { event.cancel = true }})Los listeners devuelven un objeto IDisposable. Destrúyalos cuando ya no sean necesarios.
beforeDisposable.dispose()afterDisposable.dispose()disposable.dispose()Ejecutar comandos
Si conoce el ID de un comando y sus parámetros, ejecútelo con FUniver.executeCommand. Por ejemplo, este comando de Boards cambia el nombre del Board activo:
const board = univerAPI.getActiveBoard()if (board) { await univerAPI.executeCommand('board.command.set-name', { unitId: board.getId(), name: 'Notas del proyecto', })}API de eventos
Los eventos expuestos a través de univerAPI.Event proceden del núcleo de Univer y de los complementos registrados en la aplicación. El núcleo aporta eventos compartidos de comandos y unidades, y los complementos registrados pueden ampliar esa superficie. Antes de usar un evento, compruebe que pertenece a un complemento registrado.
Consulte la referencia de eventos de Facade para ver los nombres y tipos de parámetros disponibles en la versión actual.
Use addEvent para suscribirse y destruya el objeto devuelto para cancelar la suscripción:
const disposable = univerAPI.addEvent(univerAPI.Event.CommandExecuted, ({ id }) => { if (id === 'board.command.set-name') { console.log('El nombre del Board ha cambiado') }})// Elimine el listener cuando ya no sea necesariodisposable.dispose()Deshacer y rehacer
await univerAPI.undo()await univerAPI.redo()UI
Consulte Componentes de la interfaz de Boards para ampliar los menús, la barra de herramientas y otras zonas de la interfaz de Boards.
WebSocket
Para usar las API de WebSocket, instale @univerjs/network, registre UniverNetworkPlugin e importe su extensión Facade.
import { UniverNetworkPlugin } from '@univerjs/network'import '@univerjs/network/facade'univer.registerPlugin(UniverNetworkPlugin)Después puede suscribirse a los eventos del socket, enviar mensajes y cerrar la conexión:
const socket = univerAPI.createSocket('wss://example.com/boards')socket.open$.subscribe(() => { socket.send('hello')})socket.message$.subscribe((message) => { console.log('Mensaje WebSocket:', message.data)})socket.error$.subscribe((error) => { console.error('Error de WebSocket:', error)})socket.close()API de enumeración
Facade expone enumeraciones comunes mediante univerAPI.Enum:
console.log(univerAPI.Enum.UniverInstanceType.UNIVER_BOARD)console.log(univerAPI.Enum.BoardElementType.Shape)API de métodos de utilidad
Facade expone utilidades compartidas mediante univerAPI.Util:
console.log(univerAPI.Util.tools.isString('Univer Boards')) // true¿Cómo es esta guía?