Office.SmartAlertsEventCompletedOptions interface

指定 智能警报加载项 在完成处理 OnMessageSendOnAppointmentSend 事件时的行为。

注解

[ API set: Mailbox 1.12 ]

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 });
        }
    });
}

属性

allowEvent

使用 completed 方法 指示事件处理程序完成时,此值指示处理的事件应继续执行还是取消。 例如,处理 OnMessageSendOnAppointmentSend 事件的外接程序可以设置为 allowEventfalse 以取消项目发送。 有关完整示例,请参阅 智能警报演练

cancelLabel

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性自定义“智能警报”对话框中按钮的文本。 自定义文本必须为 20 个字符或更少。

有关示例,请参阅 智能警报演练

commandId

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性指定从“智能警报”对话框中的按钮运行的任务窗格或函数的 ID。

有关示例,请参阅 智能警报演练

contextData

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性指定在从“智能警报”对话框中选择适用的按钮时传递给外接程序进行处理的任何 JSON 数据。

errorMessage

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性将设置将向用户显示的错误消息。 有关示例,请参阅 智能警报演练

sendModeOverride

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性将替代运行时清单中指定的 发送模式选项

有关示例,请参阅 智能警报演练

属性详细信息

allowEvent

使用 completed 方法 指示事件处理程序完成时,此值指示处理的事件应继续执行还是取消。 例如,处理 OnMessageSendOnAppointmentSend 事件的外接程序可以设置为 allowEventfalse 以取消项目发送。 有关完整示例,请参阅 智能警报演练

allowEvent?: boolean;

属性值

boolean

注解

[ API set: Mailbox 1.12 ]

Outlook) 的最低权限级别 (受限

适用的 Outlook 模式:Compose

cancelLabel

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性自定义“智能警报”对话框中按钮的文本。 自定义文本必须为 20 个字符或更少。

有关示例,请参阅 智能警报演练

cancelLabel?: string;

属性值

string

注解

[ API set: Mailbox 1.14 ]

Outlook) 的最低权限级别 (受限

适用的 Outlook 模式:Compose

重要说明

“智能警报”对话框中的可自定义按钮因 Outlook 客户端及其版本而异。

  • 在 Outlook 网页版、新的 Windows 版 Outlook 和从版本 2412 (内部版本 18324.20000) 开始的经典 Outlook on Windows 中,cancelLabel属性自定义“采取作”按钮的文本。 如果在调用中event.completed配置了 选项,commandId则“执行作”按钮仅显示在“智能警报”对话框中。 如果要自定义对话框按钮的文本,则必须配置 选项。 在此实现中,“ 不发送 ”按钮取消正在发送的项目。 无法自定义其文本和功能。 如果之前自定义了“ 不发送 ”按钮的文本,但未为其分配任务窗格或函数命令,则自定义文本不会在最新的 Outlook 客户端版本中生效。 如果以前向“ 不要发送 ”按钮分配了任务窗格或函数命令,则无需执行其他作即可在最新版本中实现 “执行作” 按钮。 当用户下次收到智能警报对话框时,默认或自定义的 “采取作 ”按钮将自动显示。 尽管不需要任何实现更改,但我们建议将此更新体验通知用户。

  • 在支持邮箱要求集 1.14) 和 Outlook on Mac (预览版) 之前版本 2412 (内部版本 18324.20000 ) 早期支持的经典 Outlook (版本中,cancelLabel属性自定义“请勿发送”按钮的文本。 “ 不发送 ”按钮取消正在发送的项目。

commandId

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性指定从“智能警报”对话框中的按钮运行的任务窗格或函数的 ID。

有关示例,请参阅 智能警报演练

commandId?: string;

属性值

string

注解

[ API set: Mailbox 1.14 ]

Outlook) 的最低权限级别 (受限

适用的 Outlook 模式:Compose

重要说明

该值 commandId 必须与外接程序清单中指定的任务窗格或函数 ID 匹配。 标记取决于外接程序使用的清单类型。

  • 仅外接程序清单id 表示任务窗格或函数的 Control 元素的属性。

  • Microsoft 365 的统一清单:“controls”数组中任务窗格或函数命令的“id”属性。

“智能警报”对话框中用于打开任务窗格或运行函数的按钮因 Outlook 客户端和版本而异。 从版本 2412 (内部版本 18324.20000) 开始的 Outlook 网页版、新的 Windows 版 Outlook 和经典 Outlook on Windows 中,“采取作”按钮将打开任务窗格或运行函数。 在此实现中,“ 不发送 ”按钮取消正在发送的项目。 无法自定义其文本和功能。 在早期受支持的经典 Outlook on Windows (版本 2412 (内部版本 18324.20000) 支持 邮箱要求集 1.14) 和 Outlook on Mac (预览版) ,“ 不发送 ”按钮将打开任务窗格或运行函数。

如果你在 2412 版本 2412 (内部版本 18324.20000) 经典 Outlook on Windows 之前自定义了“ 不要发送 ”按钮的文本和功能,则无需执行其他作即可在最新受支持的版本中实现 “采取作” 按钮。 当用户下次收到智能警报对话框时,默认或自定义的 “采取作 ”按钮将自动显示。 尽管不需要任何实现更改,但我们建议将此更新体验通知用户。

如果指定的命令 ID 不存在,具体取决于 Outlook 客户端,“ 执行作 ”或“ 不发送 ”按钮只会取消正在发送的项目。

如果在调用中event.completed指定选项contextData,还必须为 commandId 选项分配任务窗格或函数 ID。 否则,将忽略分配给 contextData 的 JSON 数据。

在“智能警报”对话框中配置按钮以运行函数时,该函数的按钮也会添加到 Outlook 客户端的功能区或作栏中。 contextData使用 选项从“智能警报”对话框中区分用户何时运行函数。

contextData

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性指定在从“智能警报”对话框中选择适用的按钮时传递给外接程序进行处理的任何 JSON 数据。

contextData?: any;

属性值

any

注解

[ API set: Mailbox 1.14 ]

Outlook) 的最低权限级别 (受限

适用的 Outlook 模式:Compose

重要说明

  • 在 Outlook on Windows 中, any 从版本 2402 (内部版本 17308.20000) 开始支持该类型。 在早期版本的 Outlook on Windows 中,仅 string 支持 类型。

  • 如果在调用中event.completed指定选项contextData,还必须为 commandId 选项分配任务窗格或函数 ID。 否则,将忽略分配给 contextData 的 JSON 数据。

  • 将值传递给 contextData 加载项的对话按钮因 Outlook 客户端及其版本而异。 有关详细信息,请参阅 自定义对话框中按钮的文本和功能。

  • 若要检索 属性的值 contextData ,必须在任务窗格的 JavaScript 实现中调用 Office.context.mailbox.item.getInitializationContextAsync 。 如果使用 创建 JSON 字符串 JSON.stringify() 并将其分配给 contextData 属性,则必须在检索该字符串后使用 JSON.parse() 分析该字符串。

  • 在“智能警报”对话框中配置按钮以运行函数时,该函数的按钮也会添加到 Outlook 客户端的功能区或作栏中。 contextData使用 选项从“智能警报”对话框中区分用户何时运行函数。

  • 若要防止智能警报加载项的任务窗格在已打开时重新启动,请实现 Office.EventType.InitializationContextChanged 事件的处理程序。 然后,可以将 事件参数 传递给 contextData 属性。

errorMessage

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性将设置将向用户显示的错误消息。 有关示例,请参阅 智能警报演练

errorMessage?: string;

属性值

string

注解

[ API set: Mailbox 1.12 ]

Outlook) 的最低权限级别 (受限

适用的 Outlook 模式:Compose

重要提示:错误消息必须不超过 500 个字符。

sendModeOverride

使用 completed 方法 发出事件处理程序完成信号并将其属性设置为 allowEventfalse时,此属性将替代运行时清单中指定的 发送模式选项

有关示例,请参阅 智能警报演练

sendModeOverride?: MailboxEnums.SendModeOverride | string;

属性值

注解

[ API set: Mailbox 1.14 ]

Outlook) 的最低权限级别 (受限

适用的 Outlook 模式:Compose

重要提示:目前, sendModeOverride 只能设置为 提示用户 选项。