Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les commandes de complément sont un moyen de personnaliser facilement l’interface utilisateur Office par défaut en y ajoutant des éléments d’interface de votre choix qui exécutent des actions. Pour une présentation des commandes de complément, consultez Commandes de complément.
Cet article explique comment configurer le manifeste unifié pour Microsoft 365 afin de définir des commandes de complément et comment créer le code pour les commandes de fonction.
Remarque
Le manifeste unifié pour Microsoft 365 peut être utilisé dans les compléments Outlook de production. Il est disponible uniquement en préversion pour les compléments Excel, PowerPoint et Word.
Conseil
Les instructions pour créer des commandes de complément avec le manifeste de complément uniquement se trouvent dans Créer des commandes de complément avec le manifeste de complément uniquement.
Remarque
Pour plus d’informations sur les clients et les plateformes qui prennent directement en charge les compléments Office qui utilisent le manifeste unifié pour Microsoft 365, voir Compléments Office avec le manifeste d’application unifié pour Microsoft 365.
Point de départ et étapes principales
Les deux outils qui créent des projets de complément avec un manifeste unifié (le générateur Office Yeoman et microsoft 365 Agents Toolkit ) créent des projets avec une ou plusieurs commandes de complément. La seule fois où vous n’avez pas encore de commande de complément, c’est si vous mettez à jour un complément qui n’en avait pas auparavant.
Deux décisions
- Choisissez les deux types de commandes de complément dont vous avez besoin : Volet office ou fonction
- Choisissez le type d’élément d’interface utilisateur dont vous avez besoin : bouton ou élément de menu. Effectuez ensuite les étapes décrites dans les sections et sous-sections ci-dessous qui correspondent à vos décisions.
Ajouter une commande de volet Office
Les sous-sections suivantes expliquent comment inclure une commande du volet Office dans un complément.
Configurer le runtime pour la commande du volet Office
Ouvrez le manifeste unifié et recherchez le
"extensions.runtimes"tableau.Vérifiez qu’il existe un objet runtime qui a une
"actions.type"propriété avec la valeur"openPage". Ce type de runtime ouvre un volet Office.Vérifiez que le
"requirements.capabilities"tableau contient un objet qui spécifie un ensemble de conditions requises qui prend en charge les commandes de complément. Pour Outlook, la configuration requise minimale définie pour les commandes de complément est Mailbox 1.3. Pour les autres applications hôtes Office, la configuration requise minimale définie pour les commandes de complément est AddinCommands 1.1.Vérifiez que le
"id"de l’objet runtime a un nom descriptif tel que"TaskPaneRuntime".Vérifiez que la
"code.page"propriété de l’objet runtime est définie sur l’URL de la page qui doit s’ouvrir dans le volet Office, par"https://localhost:3000/taskpane.html"exemple .Vérifiez que le
"actions.view"de l’objet runtime a un nom qui décrit le contenu de la page que vous avez définie à l’étape précédente, par"homepage"exemple ou"dashboard".Vérifiez que le
"actions.id"de l’objet runtime a un nom descriptif tel"ShowTaskPane"que qui indique ce qui se passe lorsque l’utilisateur sélectionne le bouton de commande ou l’élément de menu du complément.Définissez les autres propriétés et sous-propriétés de l’objet runtime, comme indiqué dans l’exemple complet suivant d’un objet runtime. Les
"type"propriétés et"lifetime"sont obligatoires et dans les compléments Outlook. Ils ont toujours les valeurs indiquées dans cet exemple."runtimes": [ { "requirements": { "capabilities": [ { "name": "Mailbox", "minVersion": "1.3" } ] }, "id": "TaskPaneRuntime", "type": "general", "code": { "page": "https://localhost:3000/taskpane.html" }, "lifetime": "short", "actions": [ { "id": "ShowTaskPane", "type": "openPage", "view": "homepage" } ] } ]
Configurer l’interface utilisateur pour la commande du volet Office
Vérifiez que l’objet d’extension pour lequel vous avez configuré un runtime a une
"ribbons"propriété de tableau en tant qu’homologue du"runtimes"tableau. Il n’y a généralement qu’un seul objet d’extension dans le"extensions"tableau.Vérifiez que le tableau a un objet avec des propriétés de tableau nommées
"contexts"et"tabs", comme illustré dans l’exemple suivant."ribbons": [ { "contexts": [ // child objects omitted ], "tabs": [ // child objects omitted ] } ]Vérifiez que le
"contexts"tableau comporte des chaînes qui spécifient les fenêtres ou les volets dans lesquels l’interface utilisateur de la commande du volet Office doit apparaître. Par exemple,"mailRead"signifie qu’il s’affiche dans le volet de lecture ou la fenêtre de message lorsqu’un e-mail est ouvert, mais"mailCompose"qu’il s’affiche lorsqu’un nouveau message ou une réponse est en cours de rédaction. Voici les valeurs autorisées :"mailRead""mailCompose""meetingDetailsOrganizer""meetingDetailsAttendee"
Voici un exemple.
"contexts": [ "mailRead" ],Vérifiez que le
"tabs"tableau comporte un objet avec une"builtInTabId"propriété de chaîne définie sur l’ID de l’onglet du ruban dans lequel vous souhaitez que votre commande du volet Office apparaisse. Vérifiez également qu’il existe un"groups"tableau contenant au moins un objet. Voici un exemple."tabs": [ { "builtInTabID": "TabDefault", "groups": [ { // properties omitted } ] } ]Remarque
Pour obtenir la liste des valeurs possibles de la
"builtInTabID"propriété, voir Rechercher les ID des onglets du ruban Office intégrés.Vérifiez que le
"groups"tableau a un objet pour définir le groupe de contrôles personnalisé qui contiendra vos contrôles d’interface utilisateur de commande de complément. Voici un exemple. Notez ce qui suit à propos de ce JSON :- Le
"id"doit être unique dans tous les groupes de tous les objets du ruban dans le manifeste. Longueur maximale : 64 caractères. - s’affiche
"label"sur le groupe sur le ruban. Bien que sa longueur maximale soit de 64 caractères, pour vous assurer que le groupe de contrôles s’intègre correctement dans le ruban, nous vous recommandons de limiter le"label"à 16 caractères. - L’un des
"icons"éléments apparaît sur le groupe uniquement si la fenêtre d’application Office, et par conséquent le ruban, a été dimensionnée par l’utilisateur trop petite pour que l’un des contrôles du groupe s’affiche. Office décide quand utiliser l’une de ces icônes et celle à utiliser en fonction de la taille de la fenêtre et de la résolution de l’appareil. Vous ne pouvez pas contrôler cela. Vous devez fournir des fichiers image de 16, 32 et 80 pixels, tandis que cinq autres tailles sont également prises en charge (20, 24, 40, 48 et 64 pixels). Vous devez utiliser SSL (Secure Sockets Layer) pour toutes les URL.
"groups": [ { "id": "msgReadGroup", "label": "Contoso Add-in", "icons": [ { "size": 16, "url": "https://localhost:3000/assets/icon-16.png" }, { "size": 32, "url": "https://localhost:3000/assets/icon-32.png" }, { "size": 80, "url": "https://localhost:3000/assets/icon-80.png" } ], "controls": [ { // properties omitted } ] } ]- Le
Vérifiez qu’il existe un objet de contrôle dans le
"controls"tableau pour chaque bouton ou menu personnalisé souhaité. Voici un exemple. Notez ce qui suit à propos de ce JSON :- Les
"id"propriétés ,"label"et"icons"ont le même objectif et les mêmes restrictions que les propriétés correspondantes d’un objet groupe, sauf qu’elles s’appliquent à un bouton ou un menu spécifique au sein du groupe. - La
"type"propriété est définie sur"button", ce qui signifie que le contrôle sera un bouton du ruban. Vous pouvez également configurer une commande du volet Office à exécuter à partir d’un élément de menu. Consultez Éléments de menu et de menu. - Les
"supertip.title"valeurs (longueur maximale : 64 caractères) et"supertip.description"(longueur maximale : 128 caractères) s’affichent lorsque le curseur pointe sur le bouton ou le menu. - Doit
"actionId"correspondre exactement au"runtimes.actions.id"que vous définissez dans Configurer le runtime pour la commande du volet Office.
{ "id": "msgReadOpenPaneButton", "type": "button", "label": "Show Task Pane", "icons": [ { "size": 16, "url": "https://localhost:3000/assets/icon-16.png" }, { "size": 32, "url": "https://localhost:3000/assets/icon-32.png" }, { "size": 80, "url": "https://localhost:3000/assets/icon-80.png" } ], "supertip": { "title": "Show Contoso Task Pane", "description": "Opens the Contoso task pane." }, "actionId": "ShowTaskPane" }- Les
Vous avez maintenant terminé l’ajout d’une commande du volet Office à votre complément. Charger une version test et la tester.
Ajouter une commande de fonction
Les sous-sections suivantes expliquent comment inclure une commande de fonction dans un complément.
Créer le code pour la commande de fonction
Vérifiez que votre code source inclut un fichier JavaScript ou Typescript avec la fonction que vous souhaitez exécuter avec votre commande de fonction. Voici un exemple. Étant donné que cet article concerne la création de commandes de complément et non l’enseignement de la bibliothèque JavaScript Office, nous lui fournissons un minimum de commentaires, mais notez les points suivants :
- Pour les besoins de cet article, le fichier est nommé commands.js.
- La fonction entraîne l’affichage d’une petite notification sur un e-mail ouvert avec le texte « Action effectuée ».
- Comme tout code qui appelle des API dans la bibliothèque JavaScript Office, il doit commencer par initialiser la bibliothèque. Pour ce faire, il appelle
Office.onReady. - La dernière chose que le code appelle est Office.actions.associate pour indiquer à Office quelle fonction dans le fichier doit être exécutée lorsque l’interface utilisateur de votre commande de fonction est appelée. La fonction mappe le nom de la fonction à un ID d’action que vous configurez dans le manifeste à une étape ultérieure. Si vous définissez plusieurs commandes de fonction dans le même fichier, votre code doit appeler
associatepour chacune d’elles. - La fonction doit prendre un paramètre de type Office.AddinCommands.Event. La dernière ligne de la fonction doit appeler event.completed.
Office.onReady(function() { // Add any initialization code here. }); function setNotification(event) { const message = { type: Office.MailboxEnums.ItemNotificationMessageType.InformationalMessage, message: "Performed action.", icon: "Icon.80x80", persistent: true, }; // Show a notification message. Office.context.mailbox.item.notificationMessages.replaceAsync("ActionPerformanceNotification", message); // Be sure to indicate when the add-in command function is complete. event.completed(); } // Map the function to the action ID in the manifest. Office.actions.associate("SetNotification", setNotification);Vérifiez que votre code source inclut un fichier HTML configuré pour charger le fichier de fonction que vous avez créé. Voici un exemple. Notez ce qui suit à propos de ce JSON :
Pour les besoins de cet article, le fichier est nommé commands.html.
L’élément
<body>est vide, car le fichier n’a pas d’interface utilisateur. Son seul objectif est de charger des fichiers JavaScript.La bibliothèque JavaScript Office et le fichier commands.js que vous avez créés à l’étape précédente sont explicitement chargés.
Remarque
Dans le développement de compléments Office, il est courant d’utiliser des outils tels que webpack et ses plug-ins pour injecter
<script>automatiquement des balises dans des fichiers HTML au moment de la génération. Si vous utilisez un tel outil, vous ne devez pas inclure<script>dans votre fichier source des balises qui vont être insérées par l’outil.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <!-- Office JavaScript Library --> <script type="text/javascript" src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script> <!-- Function command file --> <script src="commands.js" type="text/javascript"></script> </head> <body> </body> </html>
Configurer le runtime pour la commande de fonction
Ouvrez le manifeste unifié et recherchez le
"extensions.runtimes"tableau.Vérifiez qu’il existe un objet runtime qui a une
"actions.type"propriété avec la valeur"executeFunction".Vérifiez que le
"requirements.capabilities"tableau contient des objets qui spécifient tous les ensembles de conditions requises nécessaires pour prendre en charge les commandes de complément d’API. Pour Outlook, la configuration requise minimale définie pour les commandes de complément est Mailbox 1.3. Toutefois, si votre commande de fonction appelle cette API qui fait partie de l’ensemble de conditions requises de boîte aux lettres ultérieur, comme Mailbox 1.5, vous devez spécifier la version ultérieure (par exemple, « 1.5 ») comme"minVersion"valeur. Pour les autres applications hôtes Office, la configuration requise minimale définie pour les commandes de complément est AddinCommands 1.1.Vérifiez que le
"id"de l’objet runtime a un nom descriptif tel que « CommandsRuntime ».Vérifiez que la
"code.page"propriété de l’objet runtime est définie sur l’URL de la page HTML sans interface utilisateur qui charge votre fichier de fonction, par"https://localhost:3000/commands.html"exemple .Vérifiez que le
"actions.id"de l’objet runtime a un nom descriptif tel que « SetNotification » qui indique ce qui se passe lorsque l’utilisateur sélectionne le bouton de commande ou l’élément de menu du complément.Importante
La valeur de
"actions.id"doit correspondre exactement au premier paramètre de l’appel àOffice.actions.associatedans le fichier de fonction.Définissez les autres propriétés et sous-propriétés de l’objet runtime, comme indiqué dans l’exemple complet suivant d’un objet runtime.
"runtimes": [ { "id": "CommandsRuntime", "type": "general", "code": { "page": "https://localhost:3000/commands.html" }, "lifetime": "short", "actions": [ { "id": "SetNotification", "type": "executeFunction", } ] } ]
Configurer l’interface utilisateur pour la commande de fonction
Vérifiez que l’objet d’extension pour lequel vous avez configuré un runtime a une
"ribbons"propriété de tableau en tant qu’homologue du"runtimes"tableau. Il n’y a généralement qu’un seul objet d’extension dans le"extensions"tableau.Vérifiez que le tableau a un objet avec des propriétés de tableau nommées
"contexts"et"tabs", comme illustré dans l’exemple suivant."ribbons": [ { "contexts": [ // child objects omitted ], "tabs": [ // child objects omitted ] } ]Vérifiez que le
"contexts"tableau comporte des chaînes qui spécifient les fenêtres ou les volets dans lesquels l’interface utilisateur de la commande de fonction doit apparaître. Par exemple,"mailRead"signifie qu’il s’affiche dans le volet de lecture ou la fenêtre de message lorsqu’un e-mail est ouvert, mais"mailCompose"qu’il s’affiche lorsqu’un nouveau message ou une réponse est en cours de rédaction. Voici les valeurs autorisées :"mailRead""mailCompose""meetingDetailsOrganizer""meetingDetailsAttendee"
Voici un exemple.
"contexts": [ "mailRead" ],Vérifiez que le
"tabs"tableau a un objet avec une"builtInTabId"propriété de chaîne définie sur l’ID de l’onglet ruban dans lequel vous souhaitez que votre commande de fonction apparaisse et un"groups"tableau contenant au moins un objet. Voici un exemple."tabs": [ { "builtInTabID": "TabDefault", "groups": [ { // properties omitted } ] } ]Remarque
Pour obtenir la liste des valeurs possibles de la
"builtInTabID"propriété, voir Rechercher les ID des onglets du ruban Office intégrés.Vérifiez que le
"groups"tableau a un objet pour définir le groupe de contrôles personnalisé qui contiendra vos contrôles d’interface utilisateur de commande de complément. Voici un exemple. Notez ce qui suit à propos de ce JSON :- Le
"id"doit être unique dans tous les groupes de tous les objets du ruban dans le manifeste. Longueur maximale : 64 caractères. - s’affiche
"label"sur le groupe sur le ruban. Bien que sa longueur maximale soit de 64 caractères, pour vous assurer que le groupe de contrôles s’intègre correctement dans le ruban, nous vous recommandons de limiter le"label"à 16 caractères. - L’un des
"icons"éléments apparaît sur le groupe uniquement si la fenêtre d’application Office, et par conséquent le ruban, a été dimensionnée par l’utilisateur trop petite pour que l’un des contrôles du groupe s’affiche. Office décide quand utiliser l’une de ces icônes et celle à utiliser en fonction de la taille de la fenêtre et de la résolution de l’appareil. Vous ne pouvez pas contrôler cela. Vous devez fournir des fichiers image de 16, 32 et 80 pixels, tandis que cinq autres tailles sont également prises en charge (20, 24, 40, 48 et 64 pixels). Vous devez utiliser SSL (Secure Sockets Layer) pour toutes les URL.
"groups": [ { "id": "msgReadGroup", "label": "Contoso Add-in", "icons": [ { "size": 16, "url": "https://localhost:3000/assets/icon-16.png" }, { "size": 32, "url": "https://localhost:3000/assets/icon-32.png" }, { "size": 80, "url": "https://localhost:3000/assets/icon-80.png" } ], "controls": [ { // properties omitted } ] } ]- Le
Vérifiez qu’il existe un objet de contrôle dans le
"controls"tableau pour chaque bouton ou menu personnalisé souhaité. Voici un exemple. Notez ce qui suit à propos de ce JSON :- Les
"id"propriétés ,"label"et"icons"ont le même objectif et les mêmes restrictions que les propriétés correspondantes d’un objet groupe, sauf qu’elles s’appliquent à un bouton ou un menu spécifique au sein du groupe. - La
"type"propriété est définie sur"button", ce qui signifie que le contrôle sera un bouton du ruban. Vous pouvez également configurer une commande de fonction à exécuter à partir d’un élément de menu. Consultez Éléments de menu et de menu. - Les
"supertip.title"valeurs (longueur maximale : 64 caractères) et"supertip.description"(longueur maximale : 128 caractères) s’affichent lorsque le curseur pointe sur le bouton ou le menu. - Le
"actionId"doit correspondre exactement à celui"runtime.actions.id"que vous avez défini dans Configurer le runtime pour la commande de fonction.
{ "id": "msgReadSetNotificationButton", "type": "button", "label": "Set Notification", "icons": [ { "size": 16, "url": "https://localhost:3000/assets/icon-16.png" }, { "size": 32, "url": "https://localhost:3000/assets/icon-32.png" }, { "size": 80, "url": "https://localhost:3000/assets/icon-80.png" } ], "supertip": { "title": "Set Notification", "description": "Displays a notification message on the current message." }, "actionId": "SetNotification" }- Les
Vous avez maintenant terminé l’ajout d’une commande de fonction à votre complément. Charger une version test et la tester.
Éléments de menu et de menu
En plus des boutons personnalisés, vous pouvez également ajouter des menus déroulants personnalisés au ruban Office. Cette section explique comment utiliser un exemple avec deux éléments de menu. L’un appelle une commande de volet office. L’autre appelle une commande de fonction.
Configurer les runtimes et le code
Effectuez les étapes des sections suivantes :
- Configurer le runtime pour la commande du volet Office
- Créer le code pour la commande de fonction
- Configurer le runtime pour la commande de fonction
Configurer l’interface utilisateur pour le menu
Vérifiez que l’objet d’extension pour lequel vous avez configuré un runtime a une
"ribbons"propriété de tableau en tant qu’homologue du"runtimes"tableau. Il n’y a généralement qu’un seul objet d’extension dans le"extensions"tableau.Vérifiez que le tableau a un objet avec des propriétés de tableau nommées
"contexts"et"tabs", comme illustré dans l’exemple suivant."ribbons": [ { "contexts": [ // child objects omitted ], "tabs": [ // child objects omitted ] } ]Vérifiez que le
"contexts"tableau comporte des chaînes qui spécifient les fenêtres ou les volets dans lesquels le menu doit apparaître sur le ruban. Par exemple,"mailRead"signifie qu’il s’affiche dans le volet de lecture ou la fenêtre de message lorsqu’un e-mail est ouvert, mais"mailCompose"qu’il s’affiche lorsqu’un nouveau message ou une réponse est en cours de rédaction. Voici les valeurs autorisées :"mailRead""mailCompose""meetingDetailsOrganizer""meetingDetailsAttendee"
Voici un exemple.
"contexts": [ "mailRead" ],Vérifiez que le
"tabs"tableau comporte un objet avec une"builtInTabId"propriété de chaîne définie sur l’ID de l’onglet ruban dans lequel vous souhaitez que votre commande du volet Office apparaisse et un"groups"tableau contenant au moins un objet. Voici un exemple."tabs": [ { "builtInTabID": "TabDefault", "groups": [ { // properties omitted } ] } ]Remarque
Pour obtenir la liste des valeurs possibles de la
"builtInTabID"propriété, voir Rechercher les ID des onglets du ruban Office intégrés.Vérifiez que le
"groups"tableau a un objet pour définir le groupe de contrôles personnalisé qui contiendra votre contrôle de menu déroulant. Voici un exemple. Notez ce qui suit à propos de ce JSON :- Le
"id"doit être unique dans tous les groupes de tous les objets du ruban dans le manifeste. Longueur maximale : 64 caractères. - s’affiche
"label"sur le groupe sur le ruban. Bien que sa longueur maximale soit de 64 caractères, pour vous assurer que le groupe de contrôles s’intègre correctement dans le ruban, nous vous recommandons de limiter le"label"à 16 caractères. - L’un des
"icons"éléments apparaît sur le groupe uniquement si la fenêtre d’application Office, et par conséquent le ruban, a été dimensionnée par l’utilisateur trop petite pour que l’un des contrôles du groupe s’affiche. Office décide quand utiliser l’une de ces icônes et celle à utiliser en fonction de la taille de la fenêtre et de la résolution de l’appareil. Vous ne pouvez pas contrôler cela. Vous devez fournir des fichiers image de 16, 32 et 80 pixels, tandis que cinq autres tailles sont également prises en charge (20, 24, 40, 48 et 64 pixels). Vous devez utiliser SSL (Secure Sockets Layer) pour toutes les URL.
"groups": [ { "id": "msgReadGroup", "label": "Contoso Add-in", "icons": [ { "size": 16, "url": "https://localhost:3000/assets/icon-16.png" }, { "size": 32, "url": "https://localhost:3000/assets/icon-32.png" }, { "size": 80, "url": "https://localhost:3000/assets/icon-80.png" } ], "controls": [ { // properties omitted } ] } ]- Le
Vérifiez qu’il existe un objet de contrôle dans le
"controls"tableau. Voici un exemple. Notez ce qui suit à propos de ce JSON :- Les
"id"propriétés ,"label"et"icons"ont le même objectif et les mêmes restrictions que les propriétés correspondantes d’un objet group, sauf qu’elles s’appliquent au menu déroulant dans le groupe. - La
"type"propriété est définie sur"menu", ce qui signifie que le contrôle sera un menu déroulant. - Les
"supertip.title"valeurs (longueur maximale : 64 caractères) et"supertip.description"(longueur maximale : 128 caractères) s’affichent lorsque le curseur pointe sur le menu. - La
"items"propriété contient le JSON pour les deux options de menu. Les valeurs sont ajoutées dans les étapes ultérieures.
{ "id": "msgReadMenu", "type": "menu", "label": "Contoso Menu", "icons": [ { "size": 16, "url": "https://localhost:3000/assets/icon-16.png" }, { "size": 32, "url": "https://localhost:3000/assets/icon-32.png" }, { "size": 80, "url": "https://localhost:3000/assets/icon-80.png" } ], "supertip": { "title": "Show Contoso Actions", "description": "Opens the Contoso menu." }, "items": [ { "id": "", "type": "", "label": "", "supertip": {}, "actionId": "" }, { "id": "", "type": "", "label": "", "supertip": {}, "actionId": "" } ] }- Les
Le premier élément affiche un volet Office. Voici un exemple. Tenez compte des informations suivantes :
- Les
"id"propriétés ,"label"et"supertip"ont le même objectif et les mêmes restrictions que les propriétés correspondantes de l’objet de menu parent, sauf qu’elles s’appliquent uniquement à cette option de menu. - La
"icons"propriété est facultative pour les éléments de menu et il n’y en a pas dans cet exemple. Si vous en incluez un, il a les mêmes objectifs et restrictions que la"icons"propriété du menu parent, sauf que l’icône apparaît sur l’élément de menu en regard de l’étiquette. - La
"type"propriété est définie sur"menuItem". - Doit
"actionId"correspondre exactement au"runtimes.actions.id"que vous définissez dans Configurer le runtime pour la commande du volet Office.
{ "id": "msgReadOpenPaneMenuItem", "type": "menuItem", "label": "Show Task Pane", "supertip": { "title": "Show Contoso Task Pane", "description": "Opens the Contoso task pane." }, "actionId": "ShowTaskPane" },- Les
Le deuxième élément exécute une commande de fonction. Voici un exemple. Tenez compte des informations suivantes :
- Le
"actionId"doit correspondre exactement à celui"runtimes.actions.id"que vous avez défini dans Configurer le runtime pour la commande de fonction.
{ "id": "msgReadSetNotificationMenuItem", "type": "menuItem", "label": "Set Notification", "supertip": { "title": "Set Notification", "description": "Displays a notification message on the current message." }, "actionId": "SetNotification" }- Le
Vous avez maintenant terminé l’ajout d’un menu à votre complément. Charger une version test et la tester.