You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未打开任务窗格时用户关闭撰写邮件的捕获事件是否存在?

解决方案

可用事件说明

你需要的事件无需固定任务窗格即可捕获,Office JS 原生提供了对应能力,覆盖你提到的两个场景:

  • 退出邮件撰写场景:使用Office.EventType.ItemClose事件,会在用户关闭撰写窗口、丢弃草稿、发送完成关闭窗口等所有退出撰写状态的场景下触发
  • 切换其他邮件场景:使用Office.EventType.ItemChanged事件,会在用户在邮箱主界面切换选中不同邮件时自动触发

前置配置要求

不需要用户手动固定任务窗格,你只需要在插件的manifest配置文件中,提前声明对应事件的监听权限,允许插件在后台运行事件回调即可。

注意事项

  • 系统对事件回调的执行时长有限制,不要在回调中运行超过时间阈值的耗时逻辑,避免被系统强制终止
  • 如果你的逻辑是异步执行的,要确保异步流程走完再结束回调,避免逻辑被中断

基础示例代码

Office.onReady((info) => {
  if (info.host === Office.HostType.Outlook) {
    // 注册撰写窗口关闭事件监听
    if (Office.context.mailbox.item) {
      Office.context.mailbox.item.addHandlerAsync(
        Office.EventType.ItemClose,
        handleItemClose,
        (result) => {
          if (result.status !== Office.AsyncResultStatus.Succeeded) {
            console.error("注册ItemClose事件失败: ", result.error.message);
          }
        }
      );
    }

    // 注册邮件切换事件监听
    Office.context.mailbox.addHandlerAsync(
      Office.EventType.ItemChanged,
      handleItemChange,
      (result) => {
        if (result.status !== Office.AsyncResultStatus.Succeeded) {
          console.error("注册ItemChanged事件失败: ", result.error.message);
        }
      }
    );
  }
});

// 退出撰写状态时执行的自定义逻辑
function handleItemClose(event) {
  // 此处写入你的业务代码
  // 逻辑执行完成后调用completed方法通知系统
  event.completed();
}

// 切换邮件时执行的自定义逻辑
function handleItemChange(event) {
  // 此处写入你的业务代码
}

内容的提问来源于stack exchange,提问作者albeiro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:18:03