我正在使用 React 及其 JS SDK 为 Microsoft Outlook 开发一个插件。该加载项的目的是提供一些有关约会的附加信息,例如使用哪个房间等。为此,当用户开始在 Outlook 中创建约会时,他们打开我们的加载项,选择他们需要的属性,然后当他们单击 Outlook 中的“保存约会”按钮时,我需要在我的加载项中捕获此事件并将此数据发送到我们的后端以在我们的系统中创建约会。我坚持到了最后一步。从 Microsoft 文档来看,他们有两种方法可以实现此目的 - OnSend 功能和智能警报(这只是 OnSend 功能的较新版本)。所以我实施了智能警报。以下是智能警报支持的事件列表。
OnAppointmentSend
事件看起来正是我所需要的,但我遇到了一个问题 - 该事件仅在有与会者添加到约会时才会触发。如果至少有一名与会者,Outlook 中的“保存”按钮将变为“发送”按钮,并且 OnAppointmentSend
事件会正确触发,但当根本没有与会者时,会显示“保存”按钮,并且不会触发 OnAppointmentSend
,并且到目前为止,我发现没有类似 OnAppointmentSave
之类的事件。
有人解决过这样的问题吗?
为了接收
OnAppointmentSend
事件,我使用了他们的 docs 中的代码。要将事件与清单中的处理程序映射:
<ExtensionPoint xsi:type="LaunchEvent">
<LaunchEvents>
<LaunchEvent Type="OnAppointmentSend" FunctionName="OnAppointmentSendHandler" SendMode="PromptUser" />
</LaunchEvents>
<SourceLocation resid="WebViewRuntime.Url"/>
</ExtensionPoint>
以及 Office SDK 端的类似映射:
Office.actions.associate("OnAppointmentSendHandler", (e) => console.log('OnAppointmentSend event', e);
此代码运行良好,因此唯一的问题是如何在没有与会者的情况下获取用于保存约会的事件。
正如您所说,没有“OnApointmentSave”事件,因此您无法捕获“保存”操作。
在这种情况下,我们的方法是在创建时自动将与会者添加到所有会议中(在我们的例子中,我们也将请求者添加为与会者),这会自动将所有“保存”操作转换为“发送”操作。
这似乎没有其他副作用。此外,在 Outlook 桌面客户端中,Outlook 会自动将请求者添加为与会者。