Office.SmartAlertsEventCompletedOptions interface
指定智能警报加载项在处理 OR OnAppointmentSend 事件时的OnMessageSend行为。
注解
Outlook) (最低权限级别:受限
适用的 Outlook 模式:Compose
使用方
示例
// The following example checks whether a location is specified in an appointment before it's sent.
function onAppointmentSendHandler(event) {
Office.context.mailbox.item.location.getAsync({ asyncContext: event }, asyncResult => {
const event = asyncResult.asyncContext;
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
console.log(asyncResult.error.message);
// If the add-in is unable to retrieve the appointment's location, the appointment isn't sent.
event.completed({ allowEvent: false, errorMessage: "Failed to get the appointment's location." });
return;
}
if (asyncResult.value === "") {
// If no location is specified, the appointment isn't sent and the user is alerted to include a location.
event.completed(
{
allowEvent: false,
cancelLabel: "Add a location",
commandId: "msgComposeOpenPaneButton",
contextData: JSON.stringify({ a: "aValue", b: "bValue" }),
errorMessage: "Don't forget to add a meeting location.",
errorMessageMarkdown: "Don't forget to add a meeting location.\n\n**Tip**: For a list of locations, see [Meeting Locations]("https://www.contoso.com/meeting-locations).",
sendModeOverride: Office.MailboxEnums.SendModeOverride.PromptUser
}
);
} else {
// If a location is specified, the appointment is sent.
event.completed({ allowEvent: true });
}
});
}
属性
| allow |
使用 completed 方法 发出事件处理程序完成的信号时,此值指示已处理的事件是应继续执行还是取消。 例如,处理 |
| cancel |
使用 completed 方法发出事件处理程序完成的信号并将其属性 有关示例,请参阅 智能警报演练。 |
| command |
使用 completed 方法发出事件处理程序完成的信号并将其属性 有关示例,请参阅 智能警报演练。 |
| context |
使用 completed 方法发出事件处理程序完成的信号并将其属性 |
| error |
使用 completed 方法发出事件处理程序完成的信号并将其属性 |
| error |
使用 completed 方法发出事件处理程序完成的信号并将其属性 |
| send |
使用 completed 方法发出事件处理程序完成的信号并将其属性 有关示例,请参阅 智能警报演练。 |
属性详细信息
allowEvent
使用 completed 方法 发出事件处理程序完成的信号时,此值指示已处理的事件是应继续执行还是取消。 例如,处理 OnMessageSend Or OnAppointmentSend 事件的加载项可以设置为 allowEventfalse 取消项目的发送。 有关完整示例,请参阅 智能警报演练。
allowEvent?: boolean;
属性值
boolean
注解
Outlook) (最低权限级别:受限
适用的 Outlook 模式:Compose
cancelLabel
使用 completed 方法发出事件处理程序完成的信号并将其属性false设置为 allowEvent 时,此属性将自定义“智能警报”对话框中按钮的文本。 自定义文本必须少于 20 个字符。
有关示例,请参阅 智能警报演练。
cancelLabel?: string;
属性值
string
注解
Outlook) (最低权限级别:受限
适用的 Outlook 模式:Compose
重要说明:
“智能警报”对话框中的可自定义按钮因 Outlook 客户端及其版本而异。
在 Outlook 网页版 中,从版本 16.105 (Build 25121117) ) 开始的 Mac (预览版、Windows 上的新 Outlook 和从版本 2412 (Build 18324.20000) 开始的 Windows 上的经典 Outlook,该
cancelLabel属性自定义“执行操作”按钮的文本。 仅当在呼叫中event.completed配置了该选项时commandId,“采取操作”按钮才会显示在“智能警报”对话框上。 如果要自定义对话框按钮的文本,则必须配置此选项。 在此实现中,“ 不发送” 按钮取消正在发送的项目。 无法自定义其文本和功能。 如果以前自定义了“ 不要发送 ”按钮的文本,而没有为其分配任务窗格或函数命令,则自定义文本不会在最新的 Outlook 客户端版本中生效。 如果以前将任务窗格或函数命令分配给了“ 不发送 ”按钮,则无需执行其他操作即可在最新版本中实现 “执行操作” 按钮。 默认或自定义的 “采取措施 ”按钮将在用户下次收到智能警报对话框时自动出现。 虽然不需要更改实施,但我们建议通知用户此更新后的体验。在版本 2412 (内部版本 18324.20000) 之前的 Windows (上的经典 Outlook 和版本 16.105 ( (内部版本 25121117) ) 之前的 Mac 上的 Outlook 中,该
cancelLabel属性自定义“ 不发送 ”按钮的文本。 “ 不发送” 按钮取消正在发送的项目。
commandId
使用 completed 方法发出事件处理程序完成的信号并将其属性false设置为 allowEvent 时,此属性指定从“智能警报”对话框中的按钮运行的任务窗格或函数的 ID。
有关示例,请参阅 智能警报演练。
commandId?: string;
属性值
string
注解
API 集:邮箱 1.14 (任务窗格支持) ,邮箱 1.15 (函数命令支持)
Outlook) (最低权限级别:受限
适用的 Outlook 模式:Compose
重要说明:
该 commandId 值必须与加载项清单中指定的任务窗格或函数 ID 匹配。 标记取决于加载项使用的清单类型。
仅加载项清单:
id表示任务窗格或函数的 控件 元素的属性。Microsoft 365 统一清单: “controls”数组中任务窗格或函数命令的“id”属性。
“智能警报”对话框中打开任务窗格或运行函数的按钮因 Outlook 客户端和版本而异。 在 Outlook 网页版 中,在 Mac (预览版中,从版本 16.105 (内部版本 25121117) ) 、新的 Windows 版 Outlook 和从版本 2412 (Build 18324.20000) 开始的 Windows 版经典 Outlook 中,“执行操作”按钮可打开任务窗格或运行函数。 在此实现中,“ 不发送” 按钮取消正在发送的项目。 无法自定义其文本和功能。 在支持 邮箱要求集 1.14) ) 的 Windows 版 2412 (内部版本 18324.20000 之前的 Windows 版经典 Outlook (版本以及 Mac 上的 Outlook 中,“ 不发送 ”按钮将打开任务窗格或运行函数。
如果已在 Windows 上的经典 Outlook) 版本 2412 (内部版本 18324.20000 之前或 Outlook on Mac 版本 16.105 (内部版本 25121117) 之前的版本 2412 之前自定义智能警报加载项中“不 发送 ”按钮的文本和功能,则无需执行额外操作即可在最新的受支持版本中实现 “采取操作” 按钮。 默认或自定义的 “采取措施 ”按钮将在用户下次收到智能警报对话框时自动出现。 虽然不需要更改实施,但我们建议通知用户此更新后的体验。
如果你指定的命令 ID 不存在,则根据 Outlook 客户端,“ 执行操作” 或“ 不发送 ”按钮只是取消正在发送的项目。
如果在调用中event.completed指定contextData该选项,还必须为该commandId选项分配任务窗格或函数 ID。 否则,将忽略分配给 contextData 的 JSON 数据。
在“智能警报”对话框中配置按钮以运行函数时,该函数的按钮也会添加到 Outlook 客户端的功能区或操作栏中。 使用该 contextData 选项可以区分用户何时从“智能警报”对话框运行该函数。
从版本 16.105 (Build 25121117) 开始,可在 Mac 上的 Outlook 中预览在“智能警报”对话框中对按钮进行编程以运行函数。 若要测试此功能,请加入 Microsoft 365 预览体验计划 ,然后选择 Beta 版频道 选项以访问 Office Beta 版本。
contextData
使用 completed 方法发出事件处理程序完成的信号并将其属性false设置为 allowEvent 时,此属性指定在从“智能警报”对话框中选择适用按钮时传递给加载项进行处理的任何 JSON 数据。
contextData?: any;
属性值
any
注解
Outlook) (最低权限级别:受限
适用的 Outlook 模式:Compose
重要说明:
在 Windows 版 Outlook 中,从版本 2402 (内部版本 17308.20000) 开始支持该
any类型。 在早期版本的 Outlook on Windows 中,仅支持该string类型。如果在调用中
event.completed指定contextData该选项,还必须为该commandId选项分配任务窗格或函数 ID。 否则,将忽略分配给contextData的 JSON 数据。将
contextData值传递给加载项的对话框按钮因 Outlook 客户端及其版本而异。 有关详细信息,请参阅 自定义对话框中按钮的文本和功能。若要检索属性的
contextData值,必须调用Office.context.mailbox.item.getInitializationContextAsync任务窗格的 JavaScript 实现。 如果使用JSON.stringify()JSON 字符串创建 JSON 字符串并将其分配给contextData属性,则必须在检索字符串后使用它来JSON.parse()解析字符串。在“智能警报”对话框中配置按钮以运行函数时,该函数的按钮也会添加到 Outlook 客户端的功能区或操作栏中。 使用该
contextData选项可以区分用户何时从“智能警报”对话框运行该函数。若要防止重新启动智能警报加载项的任务窗格(如果它已打开),请实现事件的
Office.EventType.InitializationContextChanged处理程序。 然后,可以将 事件参数 传递给contextData属性。
errorMessage
使用 completed 方法发出事件处理程序完成的信号并将其属性false设置为 allowEvent 时,此属性将设置显示给用户的错误消息。 有关示例,请参阅 智能警报演练。
errorMessage?: string;
属性值
string
注解
Outlook) (最低权限级别:受限
适用的 Outlook 模式:Compose
重要说明:
错误消息必须少于 500 个字符。
如果未在属性中
errorMessage指定消息,则会改为显示以下默认消息:“<加载项名称>正在阻止发送此电子邮件。”
errorMessageMarkdown
使用 completed 方法发出事件处理程序完成的信号并将其属性false设置为 allowEvent 时,此属性将设置显示给用户的错误消息。 错误消息使用 Markdown 进行格式设置。 有关示例,请参阅 智能警报演练。
errorMessageMarkdown?: string;
属性值
string
注解
Outlook) (最低权限级别:受限
适用的 Outlook 模式:Compose
重要说明
从版本 16.103 (内部版本 25102433) 开始,该
errorMessageMarkdown属性可在 Mac 上的 Outlook 中预览。 若要测试该属性,请加入 Microsoft 365 预览体验计划 并选择 “Beta 版频道 ”选项以访问 Office Beta 版内部版本。格式化的错误消息必须少于 500 个字符。
有关受支持的 Markdown 元素的指南,请参阅 使用 Markdown 设置对话框消息格式的限制。
如果使用该属性设置
errorMessageMarkdown对话框消息的格式,建议还使用该errorMessage属性添加消息的纯文本版本。 这可确保在不支持 Markdown 的 Outlook 客户端中正确显示邮件。
sendModeOverride
使用 completed 方法发出事件处理程序完成的信号并将其属性false设置为 allowEvent 时,此属性将在运行时替代清单中指定的发送模式选项。
有关示例,请参阅 智能警报演练。
sendModeOverride?: MailboxEnums.SendModeOverride | string;
属性值
Office.MailboxEnums.SendModeOverride | string
注解
Outlook) (最低权限级别:受限
适用的 Outlook 模式:Compose
重要提示:目前只能 sendModeOverride 设置为 提示用户 选项。