API générale
Utilisez les commandes, événements, historique, presse-papiers, UI, WebSocket, énumérations et utilitaires communs dans une application PDF.
L'API Facade racine associe l'environnement d'exécution commun d'Univer aux plugins enregistrés par cette application PDF. Cette page décrit les mécanismes partagés sans supposer d'expérience avec un autre type de document Univer. Pour les unités PDF et les points d'entrée des pages, continuez avec Univer PDFs API.
Créer l'objet API
Créez un wrapper FUniver après avoir enregistré l'instance Univer et les plugins nécessaires :
import { FUniver } from '@univerjs/core/facade'const univerAPI = FUniver.newAPI(univer)Les points d'entrée Facade importés avant cet appel étendent le même objet avec des méthodes supplémentaires.
Commandes
executeCommand() exécute une commande enregistrée de façon asynchrone. Utilisez syncExecuteCommand() uniquement si cette commande prend explicitement en charge l'exécution synchrone. Les méthodes Facade restent l'entrée recommandée pour les opérations PDF courantes.
Événements
const commandLog = univerAPI.addEvent( univerAPI.Event.CommandExecuted, ({ id }) => console.log('Executed:', id))// Supprimez ensuite l'écouteur.commandLog.dispose()Utilisez BeforeCommandExecute lorsque l'application doit inspecter ou annuler une commande. LifeCycleChanged signale les étapes communes de l'éditeur telles que Rendered et Steady.
Annuler et rétablir
Annuler et rétablir agissent sur l'unité Univer active et renvoient des promesses :
await univerAPI.undo()await univerAPI.redo()Les modifications PDF Facade qui possèdent une opération inverse participent à l'historique de l'unité PDF active.
Presse-papiers système
Lorsque UniverPdfsUIPlugin est enregistré et que l'édition PDF est activée, copy() et paste() de UI Facade envoient les commandes de presse-papiers à l'unité PDF active :
import '@univerjs/ui/facade'await univerAPI.copy()await univerAPI.paste()Pour les objets PDF modifiables, le plugin PDF UI conserve le contenu copié dans la session courante du navigateur plutôt que dans le presse-papiers du système d'exploitation. L'édition de texte native du navigateur continue d'utiliser son propre comportement de presse-papiers.
UI
UI Facade peut afficher des messages, ouvrir des boîtes de dialogue ou des barres latérales, enregistrer des composants et contrôler les zones d'interface intégrées :
univerAPI.setUIVisible(univerAPI.Enum.BuiltInUIPart.TOOLBAR, true)Ces méthodes nécessitent UniverUIPlugin ; les contrôles d'édition PDF nécessitent aussi UniverPdfsUIPlugin.
WebSocket
WebSocket est facultatif. Enregistrez le plugin Network et importez son point d'entrée Facade avant de créer l'objet API :
import { UniverNetworkPlugin } from '@univerjs/network'import '@univerjs/network/facade'univer.registerPlugin(UniverNetworkPlugin)const socket = univerAPI.createSocket('wss://example.com/pdfs')socket.open$.subscribe(() => socket.send('ready'))Le protocole de messages, l'authentification, la reconnexion et la gestion des conflits de collaboration restent à la charge de l'application hôte.
Énumérations
univerAPI.Enum expose les énumérations communes de l'environnement d'exécution et celles ajoutées par PDF Facade :
const lifecycle = univerAPI.Enum.LifecycleStages.Steadyconst annotationType = univerAPI.Enum.PdfAnnotationType.HIGHLIGHTUtilitaires
univerAPI.Util expose des aides partagées, notamment le formatage des nombres, les opérations sur les rectangles et les outils communs :
const payload = univerAPI.Util.tools.deepClone({ pageId: 'page-1', selectedElementIds: ['element-1'],})Consultez la référence Facade pour l'API commune complète.
Que pensez-vous de ce guide ?