Configurer votre complément Outlook pour l’activation basée sur les événements

Sans la fonctionnalité d’activation basée sur les événements, un utilisateur doit lancer explicitement un complément pour effectuer ses tâches. Cette fonctionnalité permet à votre complément d’exécuter des tâches basées sur certains événements, en particulier pour les opérations qui s’appliquent à chaque élément. Vous pouvez également intégrer le volet Office et les commandes de fonction.

À la fin de cette procédure pas à pas, vous disposez d’un complément qui s’exécute chaque fois qu’un nouvel élément est créé et définit l’objet.

Remarque

La prise en charge de cette fonctionnalité a été introduite dans l’ensemble de conditions requises 1.10, avec des événements supplémentaires désormais disponibles dans les ensembles de conditions requises suivants. Pour plus d’informations sur l’ensemble de conditions requises minimales d’un événement et les clients et plateformes qui le prennent en charge, voir Événements pris en charge et Ensembles de conditions requises pris en charge par les serveurs Exchange et les clients Outlook.

L’activation basée sur les événements n’est pas prise en charge dans Outlook sur iOS ou Android.

Importante

L’activation basée sur les événements n’est pas encore prise en charge pour le manifeste Teams pour les compléments Office (préversion). Nous travaillons à fournir ce soutien bientôt.

Événements pris en charge

Le tableau suivant répertorie les événements actuellement disponibles et les clients pris en charge pour chaque événement. Lorsqu’un événement est déclenché, le gestionnaire reçoit un event objet qui peut inclure des détails spécifiques au type d’événement. La colonne Description inclut un lien vers l’objet associé, le cas échéant.

Nom canonique
de l’événement et nom du manifeste XML
Nom du manifeste Teams Description Ensemble de conditions requises minimales et clients pris en charge
OnNewMessageCompose newMessageComposeCreated Lors de la composition d’un nouveau message (y compris la réponse, la réponse et le transfert), mais pas lors de la modification, par exemple, un brouillon. 1.10

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnNewAppointmentOrganizer newAppointmentOrganizerCreated Lors de la création d’un rendez-vous, mais pas lors de la modification d’un rendez-vous existant. 1.10

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnMessageAttachmentsChanged messageAttachmentsChanged Lors de l’ajout ou de la suppression de pièces jointes lors de la composition d’un message.

Objet de données spécifique à l’événement : AttachmentsChangedEventArgs
1.11

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnAppointmentAttachmentsChanged appointmentAttachmentsChanged Lors de l’ajout ou de la suppression de pièces jointes lors de la composition d’un rendez-vous.

Objet de données spécifique à l’événement : AttachmentsChangedEventArgs
1.11

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnMessageRecipientsChanged messageRecipientsChanged Lors de l’ajout ou de la suppression de destinataires lors de la composition d’un message.

Objet de données spécifique à l’événement : RecipientsChangedEventArgs
1.11

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnAppointmentAttendeesChanged appointmentAttendeesChanged Lors de l’ajout ou de la suppression de participants lors de la composition d’un rendez-vous.

Objet de données spécifique à l’événement : RecipientsChangedEventArgs
1.11

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnAppointmentTimeChanged appointmentTimeChanged Lors de la modification de date/heure lors de la composition d’un rendez-vous.

Objet de données spécifique à l’événement : AppointmentTimeChangedEventArgs
1.11

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnAppointmentRecurrenceChanged appointmentRecurrenceChanged Lors de l’ajout, de la modification ou de la suppression des détails de périodicité lors de la composition d’un rendez-vous. Si la date/heure est modifiée, l’événement OnAppointmentTimeChanged est également déclenché.

Objet de données spécifique à l’événement : RecurrenceChangedEventArgs
1.11

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnInfoBarDismissClicked infoBarDismissClicked Lors de la suppression d’une notification lors de la composition d’un message ou d’un élément de rendez-vous. Seul le complément qui a ajouté la notification sera notifié.

Objet de données spécifique à l’événement : InfobarClickedEventArgs
1.11

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnMessageSend messageSending Lors de l’envoi d’un élément de message. Pour plus d’informations, consultez la procédure pas à pas des alertes intelligentes. 1.12

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnAppointmentSend appointmentSending Lors de l’envoi d’un élément de rendez-vous. Pour plus d’informations, consultez la procédure pas à pas des alertes intelligentes. 1.12

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnMessageCompose messageComposeOpened Lors de la composition d’un nouveau message (y compris la réponse, la réponse et le transfert) ou la modification d’un brouillon. 1.12

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnAppointmentOrganizer appointmentOrganizerOpened Lors de la création d’un rendez-vous ou de la modification d’un rendez-vous existant. 1.12

- Windows1
- Navigateur web
- Nouvelle interface utilisateur Mac
OnMessageFromChanged Non disponible Lors de la modification du compte de messagerie dans le champ De d’un message en cours de composition. Pour plus d’informations, consultez Mettre à jour automatiquement votre signature lors du basculement entre des comptes Exchange (préversion). Aperçu

- Windows1

Remarque

1 Les compléments basés sur les événements dans Outlook sur Windows nécessitent au moins Windows 10 version 1903 (build 18362) ou Windows Server 2019 version 1903 pour s’exécuter.

Configuration de votre environnement

Suivez le guide de démarrage rapide Outlook qui crée un projet de complément avec le générateur Yeoman pour les compléments Office.

Configurer le manifeste

Pour configurer le manifeste, sélectionnez l’onglet correspondant au type de manifeste que vous utilisez.

Pour activer l’activation basée sur les événements de votre complément, vous devez configurer l’élément Runtimes et le point d’extension LaunchEvent dans le VersionOverridesV1_1 nœud du manifeste. Pour l’instant, DesktopFormFactor est le seul facteur de forme pris en charge.

  1. Dans votre éditeur de code, ouvrez le projet de démarrage rapide.

  2. Ouvrez le fichier manifest.xml situé à la racine de votre projet.

  3. Sélectionnez l’intégralité <du nœud VersionOverrides> (y compris les balises d’ouverture et de fermeture) et remplacez-le par le code XML suivant, puis enregistrez vos modifications.

<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
  <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
    <Requirements>
      <bt:Sets DefaultMinVersion="1.10">
        <bt:Set Name="Mailbox" />
      </bt:Sets>
    </Requirements>
    <Hosts>
      <Host xsi:type="MailHost">
        <!-- Event-based activation happens in a lightweight runtime.-->
        <Runtimes>
          <!-- HTML file including reference to or inline JavaScript event handlers.
               This is used by Outlook on the web and Outlook on the new Mac UI. -->
          <Runtime resid="WebViewRuntime.Url">
            <!-- JavaScript file containing event handlers. This is used by Outlook on Windows. -->
            <Override type="javascript" resid="JSRuntime.Url"/>
          </Runtime>
        </Runtimes>
        <DesktopFormFactor>
          <FunctionFile resid="Commands.Url" />
          <ExtensionPoint xsi:type="MessageReadCommandSurface">
            <OfficeTab id="TabDefault">
              <Group id="msgReadGroup">
                <Label resid="GroupLabel" />
                <Control xsi:type="Button" id="msgReadOpenPaneButton">
                  <Label resid="TaskpaneButton.Label" />
                  <Supertip>
                    <Title resid="TaskpaneButton.Label" />
                    <Description resid="TaskpaneButton.Tooltip" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Icon.16x16" />
                    <bt:Image size="32" resid="Icon.32x32" />
                    <bt:Image size="80" resid="Icon.80x80" />
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <SourceLocation resid="Taskpane.Url" />
                  </Action>
                </Control>
                <Control xsi:type="Button" id="ActionButton">
                  <Label resid="ActionButton.Label"/>
                  <Supertip>
                    <Title resid="ActionButton.Label"/>
                    <Description resid="ActionButton.Tooltip"/>
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Icon.16x16"/>
                    <bt:Image size="32" resid="Icon.32x32"/>
                    <bt:Image size="80" resid="Icon.80x80"/>
                  </Icon>
                  <Action xsi:type="ExecuteFunction">
                    <FunctionName>action</FunctionName>
                  </Action>
                </Control>
              </Group>
            </OfficeTab>
          </ExtensionPoint>

          <!-- Can configure other command surface extension points for add-in command support. -->

          <!-- Enable launching the add-in on the included events. -->
          <ExtensionPoint xsi:type="LaunchEvent">
            <LaunchEvents>
              <LaunchEvent Type="OnNewMessageCompose" FunctionName="onNewMessageComposeHandler"/>
              <LaunchEvent Type="OnNewAppointmentOrganizer" FunctionName="onNewAppointmentComposeHandler"/>
              
              <!-- Other available events -->
              <!--
              <LaunchEvent Type="OnMessageAttachmentsChanged" FunctionName="onMessageAttachmentsChangedHandler" />
              <LaunchEvent Type="OnAppointmentAttachmentsChanged" FunctionName="onAppointmentAttachmentsChangedHandler" />
              <LaunchEvent Type="OnMessageRecipientsChanged" FunctionName="onMessageRecipientsChangedHandler" />
              <LaunchEvent Type="OnAppointmentAttendeesChanged" FunctionName="onAppointmentAttendeesChangedHandler" />
              <LaunchEvent Type="OnAppointmentTimeChanged" FunctionName="onAppointmentTimeChangedHandler" />
              <LaunchEvent Type="OnAppointmentRecurrenceChanged" FunctionName="onAppointmentRecurrenceChangedHandler" />
              <LaunchEvent Type="OnInfoBarDismissClicked" FunctionName="onInfobarDismissClickedHandler" />
              <LaunchEvent Type="OnMessageSend" FunctionName="onMessageSendHandler" SendMode="PromptUser" />
              <LaunchEvent Type="OnAppointmentSend" FunctionName="onAppointmentSendHandler" SendMode="PromptUser" />
              <LaunchEvent Type="OnMessageCompose" FunctionName="onMessageComposeHandler" />
              <LaunchEvent Type="OnAppointmentOrganizer" FunctionName="onAppointmentOrganizerHandler" />
              -->
            </LaunchEvents>
            <!-- Identifies the runtime to be used (also referenced by the Runtime element). -->
            <SourceLocation resid="WebViewRuntime.Url"/>
          </ExtensionPoint>
        </DesktopFormFactor>
      </Host>
    </Hosts>
    <Resources>
      <bt:Images>
        <bt:Image id="Icon.16x16" DefaultValue="https://localhost:3000/assets/icon-16.png"/>
        <bt:Image id="Icon.32x32" DefaultValue="https://localhost:3000/assets/icon-32.png"/>
        <bt:Image id="Icon.80x80" DefaultValue="https://localhost:3000/assets/icon-80.png"/>
      </bt:Images>
      <bt:Urls>
        <bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html" />
        <bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html" />
        <bt:Url id="WebViewRuntime.Url" DefaultValue="https://localhost:3000/commands.html" />
        <!-- Entry needed for Outlook on Windows. -->
        <bt:Url id="JSRuntime.Url" DefaultValue="https://localhost:3000/launchevent.js" />
      </bt:Urls>
      <bt:ShortStrings>
        <bt:String id="GroupLabel" DefaultValue="Contoso Add-in"/>
        <bt:String id="TaskpaneButton.Label" DefaultValue="Show Taskpane"/>
        <bt:String id="ActionButton.Label" DefaultValue="Perform an action"/>
      </bt:ShortStrings>
      <bt:LongStrings>
        <bt:String id="TaskpaneButton.Tooltip" DefaultValue="Opens a pane displaying all available properties."/>
        <bt:String id="ActionButton.Tooltip" DefaultValue="Perform an action when clicked."/>
      </bt:LongStrings>
    </Resources>
  </VersionOverrides>
</VersionOverrides>

Outlook sur Windows utilise un fichier JavaScript, tandis que Outlook sur le web et sur la nouvelle interface utilisateur Mac utilisent un fichier HTML qui peut référencer le même fichier JavaScript. Vous devez fournir des références à ces deux fichiers dans le Resources nœud du manifeste, car la plateforme Outlook détermine en fin de compte s’il faut utiliser HTML ou JavaScript en fonction du client Outlook. Par conséquent, pour configurer la gestion des événements, indiquez l’emplacement du code HTML dans l’élément <Runtime> , puis, dans son Override élément enfant, indiquez l’emplacement du fichier JavaScript inclus ou référencé par le code HTML.

Conseil

Implémenter la gestion des événements

Vous devez implémenter la gestion des événements sélectionnés.

Dans ce scénario, vous allez ajouter la gestion de la composition de nouveaux éléments.

  1. À partir du même projet de démarrage rapide, créez un dossier nommé launchevent sous le répertoire ./src .

  2. Dans le dossier ./src/launchevent , créez un fichier nommé launchevent.js.

  3. Ouvrez le fichier ./src/launchevent/launchevent.js dans votre éditeur de code et ajoutez le code JavaScript suivant.

    /*
    * Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
    * See LICENSE in the project root for license information.
    */
    
    function onNewMessageComposeHandler(event) {
      setSubject(event);
    }
    function onNewAppointmentComposeHandler(event) {
      setSubject(event);
    }
    function setSubject(event) {
      Office.context.mailbox.item.subject.setAsync(
        "Set by an event-based add-in!",
        {
          "asyncContext": event
        },
        function (asyncResult) {
          // Handle success or error.
          if (asyncResult.status !== Office.AsyncResultStatus.Succeeded) {
            console.error("Failed to set subject: " + JSON.stringify(asyncResult.error));
          }
    
          // Call event.completed() after all work is done.
          asyncResult.asyncContext.completed();
        });
    }
    
    // IMPORTANT: To ensure your add-in is supported in the Outlook client on Windows, remember to map the event handler name specified in the manifest's LaunchEvent element to its JavaScript counterpart.
    // 1st parameter: FunctionName of LaunchEvent in the manifest; 2nd parameter: Its implementation in this .js file.
    if (Office.context.platform === Office.PlatformType.PC || Office.context.platform == null) {
      Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler);
      Office.actions.associate("onNewAppointmentComposeHandler", onNewAppointmentComposeHandler);
    }
    
  4. Enregistrez vos modifications.

Importante

Windows : À l’heure actuelle, les importations ne sont pas prises en charge dans le fichier JavaScript dans lequel vous implémentez la gestion de l’activation basée sur les événements.

Conseil

Les compléments basés sur les événements exécutés dans Outlook sur Windows n’exécutent pas de code inclus dans les Office.onReady() fonctions et Office.initialize . Nous vous recommandons d’ajouter votre logique de démarrage de complément, par exemple vérifier la version d’Outlook de l’utilisateur, à vos gestionnaires d’événements à la place.

Mettre à jour le fichier HTML des commandes

  1. Dans le dossier ./src/commands , ouvrez commands.html.

  2. Juste avant la balise head fermante (</head>), ajoutez une entrée de script pour inclure le code JavaScript de gestion des événements.

    <script type="text/javascript" src="../launchevent/launchevent.js"></script>
    
  3. Enregistrez vos modifications.

Mettre à jour les paramètres de configuration webapck

  1. Ouvrez le fichier webpack.config.js qui se trouve dans le répertoire racine du projet et effectuez les étapes suivantes.

  2. Recherchez le plugins tableau dans l’objet config et ajoutez ce nouvel objet au début du tableau.

    new CopyWebpackPlugin({
      patterns: [
        {
          from: "./src/launchevent/launchevent.js",
          to: "launchevent.js",
        },
      ],
    }),
    
  3. Enregistrez vos modifications.

Essayez

  1. Exécutez les commandes suivantes dans le répertoire racine de votre projet. Lorsque vous exécutez npm start, le serveur web local démarre (s’il n’est pas déjà en cours d’exécution) et votre complément est chargé de manière indépendante.

    npm run build
    
    npm start
    

    Remarque

    Si votre complément n’a pas été automatiquement chargé de manière indépendante, suivez les instructions fournies dans Charger une version test des compléments Outlook pour charger manuellement une version test du complément dans Outlook.

  2. Dans Outlook sur le web, créez un message.

    Une fenêtre de message dans Outlook sur le web avec l’objet défini sur compose.

  3. Dans Outlook sur la nouvelle interface utilisateur Mac, créez un message.

    Fenêtre de message dans Outlook sur la nouvelle interface utilisateur Mac avec l’objet défini sur composer.

  4. Dans Outlook sur Windows, créez un message.

    Fenêtre de message dans Outlook sur Windows avec l’objet défini sur composer.

Guide de résolution des problèmes

Au fur et à mesure que vous développez votre complément basé sur les événements, vous devrez peut-être résoudre des problèmes, tels que le fait que votre complément ne se charge pas ou que l’événement ne se produit pas. Si vous rencontrez des problèmes de développement, reportez-vous aux quatre sections suivantes pour obtenir des conseils de dépannage.

Passer en revue les prérequis de l’activation basée sur les événements

Vérifier la configuration requise pour le manifeste et JavaScript

  • Vérifiez que les conditions suivantes sont remplies dans le manifeste de votre complément.

    • Vérifiez que l’URL de l’emplacement du fichier source de votre complément est disponible publiquement et n’est pas bloquée par un pare-feu. Cette URL est spécifiée dans l’élément SourceLocation de votre manifeste.
    • Vérifiez que l’élément <Runtimes> référence correctement le fichier HTML ou JavaScript contenant les gestionnaires d’événements. Outlook sur Windows utilise le fichier JavaScript pendant l’exécution, tandis que Outlook sur le web et sur la nouvelle interface utilisateur Mac utilisent le fichier HTML. Pour obtenir un exemple de configuration dans le manifeste, consultez Configurer le manifeste.
  • Vérifiez que votre fichier JavaScript de gestion des événements référencé par le client Outlook sur Windows appelle Office.actions.associate. Cela garantit que le nom du gestionnaire d’événements spécifié dans l’élément LaunchEvent> du< manifeste est mappé à son équivalent JavaScript.

    Conseil

    Si votre complément basé sur les événements n’a qu’un seul fichier JavaScript référencé par Outlook sur le web, Windows et Mac, il est recommandé de vérifier la plateforme sur laquelle le complément s’exécute pour déterminer quand appeler Office.actions.associate, comme indiqué dans le code suivant.

    if (Office.context.platform === Office.PlatformType.PC || Office.context.platform == null) {
      Office.actions.associate("onNewMessageComposeHandler", onNewMessageComposeHandler);
      Office.actions.associate("onNewAppointmentComposeHandler", onNewAppointmentComposeHandler);
    }
    
  • Le code JavaScript des compléments basés sur des événements qui s’exécutent dans Outlook sur Windows prend uniquement en charge les spécifications ECMAScript 2016 et antérieures. Voici quelques exemples de syntaxe de programmation à éviter.

    • Évitez d’utiliser des async instructions et await dans votre code. L’inclusion de ces éléments dans votre code JavaScript entraîne l’expiration du délai d’attente du complément.
    • Évitez d’utiliser l’opérateur conditionnel (ternaire), car il empêchera le chargement de votre complément.

    Si votre complément n’a qu’un seul fichier JavaScript référencé par Outlook sur le web, Windows et Mac, vous devez limiter votre code à ECMAScript 2016 pour vous assurer que votre complément s’exécute dans Outlook sur Windows. Toutefois, si vous avez un fichier JavaScript distinct référencé par Outlook sur le web et Mac, vous pouvez implémenter une spécification ECMAScript ultérieure dans ce fichier.

Déboguer votre complément

  • Lorsque vous apportez des modifications à votre complément, n’oubliez pas que :
    • Si vous mettez à jour le manifeste, supprimez le complément, puis rechargez-le. Si vous utilisez Outlook sur Windows, vous devez également fermer et rouvrir Outlook.
    • Si vous apportez des modifications à des fichiers autres que le manifeste, fermez et rouvrez le client de bureau Outlook ou actualisez l’onglet du navigateur exécutant Outlook sur le web.
    • Si vous ne parvenez toujours pas à voir vos modifications après avoir effectué ces étapes, effacez votre cache Office.
  • Lorsque vous testez votre complément dans Outlook sur Windows :
    • Vérifiez observateur d'événements des erreurs de complément signalées.

      1. Dans observateur d'événements, sélectionnezApplicationjournaux> Windows.
      2. Dans le panneau Actions , sélectionnez Filtrer le journal actuel.
      3. Dans la liste déroulante Journalisation , sélectionnez la période de journalisation de votre choix.
      4. Cochez la case Erreur .
      5. Dans le champ ID d’événement , entrez 63.
      6. Sélectionnez OK pour appliquer vos filtres.

      Exemple de paramètres de filtre du journal actuel de observateur d'événements configurés pour afficher uniquement les erreurs Outlook avec l’ID d’événement 63 qui se sont produites au cours de la dernière heure.

    • Vérifiez que le fichier bundle.js est téléchargé dans le dossier suivant dans Explorateur de fichiers. Remplacez le texte joint par [] vos informations applicables.

      %LOCALAPPDATA%\Microsoft\Office\16.0\Wef\{[Outlook profile GUID]}\[Outlook mail account encoding]\Javascript\[Add-in ID]_[Add-in Version]_[locale]
      

      Si le fichier bundle.js n’apparaît pas dans le dossier, supprimez votre complément d’Outlook, puis rechargez-le.

  • Lorsque vous testez votre complément dans Outlook sur Windows ou Mac, activez la journalisation du runtime pour identifier les éventuels problèmes d’installation du manifeste et du complément. Pour obtenir des conseils sur l’utilisation de la journalisation du runtime, consultez Déboguer votre complément avec la journalisation du runtime.
  • Définissez des points d’arrêt dans votre code pour déboguer votre complément. Pour obtenir des instructions spécifiques à la plateforme, consultez Déboguer votre complément Outlook basé sur les événements.

Demander de l’aide supplémentaire

Si vous avez toujours besoin d’aide après avoir effectué les étapes de résolution des problèmes recommandées, ouvrez un problème GitHub. Incluez des captures d’écran, des enregistrements vidéo ou des journaux d’exécution pour compléter votre rapport.

Déployer sur les utilisateurs

Les compléments basés sur les événements sont limités aux déploiements gérés par l’administrateur uniquement, même s’ils sont acquis à partir d’AppSource. Si les utilisateurs acquièrent le complément à partir d’AppSource ou de l’Office Store dans l’application, ils ne pourront pas activer la fonction basée sur les événements du complément. Pour en savoir plus sur l’affichage de votre complément basé sur les événements dans AppSource, consultez Options de référencement AppSource pour votre complément Outlook basé sur les événements.

Administration déploiements s’effectuent en chargeant le manifeste dans le Centre d'administration Microsoft 365. Dans le portail d’administration, développez la section Paramètres dans le volet de navigation, puis sélectionnez Applications intégrées. Dans la page Applications intégrées , choisissez l’action Charger des applications personnalisées .

La page Applications intégrées sur le Centre d'administration Microsoft 365 avec l’action Charger des applications personnalisées mise en surbrillance.

Importante

Les compléments qui utilisent la fonctionnalité Alertes intelligentes ne peuvent être publiés sur AppSource que si la propriété SendMode du manifeste est définie sur l’option SoftBlock ou PromptUser . Si la propriété SendMode d’un complément est définie sur Block, elle ne peut être déployée que par l’administrateur d’une organisation, car la validation AppSource échoue.

Déployer des mises à jour de manifeste

Étant donné que les compléments basés sur les événements sont déployés par les administrateurs, toute modification apportée au manifeste nécessite le consentement de l’administrateur via le Centre d'administration Microsoft 365. Tant que l’administrateur n’accepte pas vos modifications, les utilisateurs de leur organisation ne peuvent pas utiliser le complément. Pour en savoir plus sur le processus de consentement administrateur, consultez Administration consentement pour l’installation de compléments basés sur des événements.

Comportement et limitations de l’activation basée sur les événements

Les gestionnaires d’événements de lancement de compléments sont censés être courts, légers et aussi non invasifs que possible. Après l’activation, votre complément expire dans un délai d’environ 300 secondes, durée maximale autorisée pour l’exécution des compléments basés sur les événements. Pour signaler que votre complément a terminé le traitement d’un événement de lancement, le gestionnaire d’événements associé doit appeler la event.completed méthode . (Notez que l’exécution du code inclus après l’instruction event.completed n’est pas garantie.) Chaque fois qu’un événement géré par votre complément est déclenché, le complément est réactivé et exécute le gestionnaire d’événements associé, et la fenêtre de délai d’expiration est réinitialisée. Le complément se termine après son expiration, ou l’utilisateur ferme la fenêtre de composition ou envoie l’élément.

Si l’utilisateur a plusieurs compléments qui se sont abonnés au même événement, la plateforme Outlook lance les compléments dans aucun ordre particulier. Actuellement, seuls cinq compléments basés sur des événements peuvent être en cours d’exécution.

Dans tous les clients Outlook pris en charge, l’utilisateur doit rester sur l’élément de courrier actuel dans lequel le complément a été activé pour qu’il s’exécute. Si vous quittez l’élément actif (par exemple, en basculant vers une autre fenêtre de composition ou un autre onglet), l’opération de complément est terminée. Le complément cesse également de fonctionner lorsque l’utilisateur envoie le message ou le rendez-vous qu’il compose.

Lorsque vous développez un complément basé sur des événements à exécuter dans le client Outlook sur Windows, tenez compte des points suivants :

  • Les importations ne sont pas prises en charge dans le fichier JavaScript dans lequel vous implémentez la gestion de l’activation basée sur les événements.
  • Les compléments n’exécutent pas de code inclus dans Office.onReady() et Office.initialize. Nous vous recommandons d’ajouter une logique de démarrage, telle que la vérification de la version d’Outlook de l’utilisateur, à vos gestionnaires d’événements à la place.

Certaines API Office.js qui modifient ou modifient l’interface utilisateur ne sont pas autorisées à partir de compléments basés sur des événements. Voici les API bloquées.

Demande de données externes

Vous pouvez demander des données externes à l’aide d’une API telle que Fetch ou à l’aide de XMLHttpRequest (XHR), une API web standard qui émet des requêtes HTTP pour interagir avec les serveurs.

N’oubliez pas que vous devez utiliser des mesures de sécurité supplémentaires lors de l’utilisation d’objets XMLHttpRequest, nécessitant la même stratégie d’origine et un simple CORS (Cross-Origin Resource Sharing).

Une implémentation CORS simple :

  • Impossible d’utiliser des cookies.
  • Prend uniquement en charge les méthodes simples, telles que GET, HEADet POST.
  • Accepte des en-têtes simples avec des noms Acceptde champ , Accept-Languageou Content-Language.
  • Peut utiliser le Content-Type, à condition que le type de contenu soit application/x-www-form-urlencoded, text/plainou multipart/form-data.
  • Les écouteurs d’événements ne peuvent pas être inscrits sur l’objet retourné par XMLHttpRequest.upload.
  • Impossible d’utiliser des ReadableStream objets dans les requêtes.

Remarque

La prise en charge complète de CORS est disponible dans Outlook sur le web, Mac et Windows (à partir de la version 2201, build 16.0.14813.10000).

Voir aussi