如何从 OnMessageSend 事件触发 Outlook 基于 Web 的插件中的功能?

问题描述 投票:0回答:1

我在任务窗格代码中有一个函数

showSendingState()
,它应该更改任务窗格的整个 UI 以显示它正在发送和其他一些内容。它需要位于任务窗格中,而不是位于事件处理程序中。

因此,在用户单击“发送”后,我希望运行此功能。

可以吗?


我现在能想到的最好方法是实现一个标志和轮询机制,任务窗格中的一个函数将定期轮询

customProperties
mailItem
,以获取触发
OnMessageSend
时设置的标志。如果找到,它将运行
showSendingState()
函数。

另一种方法是在任务窗格中注册

RecipientsChanged
事件处理程序,并在
OnMessageSend
事件中设置密件抄送。但这需要更改
mail
的数据并保存。

如果有一个事件可以在

OnMessageSend
事件处理程序中触发,并且不需要更改邮件的数据,那就是最理想的。

outlook-web-addins
1个回答
0
投票

是的,这是可以实现的。正如您所建议的,发送部分在加载项的基于事件的部分中沙箱化,而任务窗格在不同的上下文中运行。

我们可以使用

Office.context.mailbox.item?.sessionData
https://learn.microsoft.com/en-us/javascript/api/outlook/office.sessiondata?view=outlook-js-preview 在事件端设置一个flag,然后任务窗格可以轮询会话数据以推断项目是否正在发送。

在任务窗格中,需要按一定时间间隔轮询 sessionData,因为您无法使用回调函数订阅 sessionData 更改。

© www.soinside.com 2019 - 2024. All rights reserved.