在 Outlook 中实现可固定的任务窗格

外接程序命令 的任务窗格 UX 形状会在打开的邮件或会议请求右侧打开垂直任务窗格。 这允许加载项为更详细的交互提供 UI,例如填写多个文本字段。 查看消息列表时,可以在阅读窗格中显示此任务窗格,以便快速处理消息。

但是,默认情况下,如果用户在阅读窗格中为邮件打开了加载项任务窗格,然后选择新邮件,则任务窗格会自动关闭。 如果频繁使用外接程序,用户可能更倾向于让此任务窗格一直处于打开状态,这样就无需重新激活每个邮件的外接程序了。 使用可固定的任务窗格,加载项可以为用户提供该选项。

注意

尽管可固定任务窗格功能已在 要求集 1.5 中引入,但目前仅对使用以下Microsoft 365 个订阅者可用:

  • 新式 Outlook 网页版
  • Windows 上的新 Outlook
  • Windows (内部版本 7668.2000 或更高版本上的经典Outlook 2016或更高版本,适用于当前或Microsoft 365 预览体验成员频道中的用户,对于延期频道中的用户,版本 7900.xxxx 或更高版本)
  • Outlook on Mac (版本 16.13 (18050300) 或更高版本)

重要

可固定任务窗格不适用于以下各项:

  • 约会/会议
  • Outlook.com

支持的 Outlook 模式

Outlook 中的“邮件Compose”和“邮件读取”模式都支持可固定任务窗格。 但是,不同模式不支持固定。 这是因为加载项在每个模式下的按钮和任务窗格上可能有不同的 UI。 例如,如果用户在阅读邮件时固定加载项的任务窗格,然后创建新邮件,则他们不会从正在撰写的邮件中看到加载项的任务窗格。 若要查看任务窗格,用户必须从他们正在撰写的消息中激活加载项。 如果用户随后固定任务窗格,则在用户下次撰写另一条消息时,任务窗格将保持固定状态。

支持固定任务窗格

第一步是添加固定支持,此步操作是在外接程序清单中完成。 标记因外接程序使用的清单类型而异。

将设置为 的“固定”属性 true添加到定义打开任务窗格的按钮或菜单项的“actions”数组中的 对象。 示例如下。

"actions": [
    {
        "id": "OpenTaskPane",
        "type": "openPage",
        "view": "TaskPaneView",
        "displayName": "OpenTaskPane",
        "pinnable": true
    }
]

有关完整示例,请参阅command-demo 示例清单中的 msgReadOpenPaneButton 控件。

注意

在未启用阅读窗格或先选择消息的情况下激活的加载项中自动支持任务窗格固定。 若要了解详细信息,请参阅 在未启用阅读窗格或未选择邮件的情况下激活 Outlook 加载项

根据当前选择的邮件处理 UI 更新

若要根据当前项更新任务窗格的 UI 或内部变量,必须注册事件处理程序,才能收到变化通知。

实现事件处理程序

事件处理程序应接受一个参数,即对象文本。 该对象的 type 属性将设为 Office.EventType.ItemChanged。 事件调用后,Office.context.mailbox.item 对象已更新,以反映当前选定项。

function itemChanged(eventArgs) {
  // Update UI based on the new current item.
  updateTaskPaneUI(Office.context.mailbox.item);
}

重要

事件的事件处理程序ItemChanged实现应检查 Office.content.mailbox.item 是否为 null。

// Example implementation.
function updateTaskPaneUI(item) {
  // Assuming that item is always a read item (instead of a compose item).
  if (item != null) console.log(item.subject);
}

注册事件处理程序

使用 Office.context.mailbox.addHandlerAsync 方法注册 Office.EventType.ItemChanged 事件的事件处理程序。 这应在任务窗格的 函数中 Office.onReady 完成。

Office.onReady(() => {
  $(document).ready(() => {
    // Set up the ItemChanged event.
    Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, itemChanged);
    updateTaskPaneUI(Office.context.mailbox.item);
  });
});

在多选中固定任务窗格

在Outlook 网页版和新的 Outlook on Windows 中,当打开实现项目多选功能的外接程序的任务窗格时,会自动将其固定到 Outlook 客户端。 即使用户切换到其他邮件项或从任务窗格中选择 固定 图标,它也会保持固定状态。 只能通过从任务窗格中选择“ 关闭 ”按钮来关闭任务窗格。

相反,在经典 Outlook on Windows 和 Outlook on Mac 中,当用户切换到其他邮件项目时,多选加载项的任务窗格不会自动固定和关闭。

部署到用户

如果计划将 Outlook 加载项 发布到AppSource ,并且它配置了可固定的任务窗格,则加载项的固定内容不得是静态的。 也就是说,固定内容必须根据邮箱中当前打开或选择的邮件或约会而更改。 这可确保加载项通过 AppSource 验证

另请参阅

有关实现可固定的任务窗格的示例外接程序,请参阅 GitHub 上的 command-demo