Skip to content

监听公共事件

fileOpen

文档打开成功或者失败时的事件回调

jssdk.ApiEvent.AddApiEventListener("fileOpen", (data) => {
  console.log("fileOpen: ", data);
});

注意:该事件需要在 jssdk.ready() 之前进行注册

成功时的返回参数:

{
  duration: 812,
  fileInfo: {
    createTime: 1606461829,
    id: "94749723688",
    modifyTime: 1606461829,
    name: "userName",
    officeType: "s",
  },
  stageTime: 1614,
  success: true,
  time: 1614,
  ts: 1607858260164,
}

失败时的返回参数:

{
  msg: "Fail",
  result: "Fail"
}

error

错误发生时的事件回调

例如将 doc 文件改成 xls 文件等操作,会引发报错

jssdk.ApiEvent.AddApiEventListener("error", (data) => {
  console.log("error: ", data);
});

返回参数:

{
  reason: "Fail";
}

tabSwitch

文档 Tab 切换的事件回调

jssdk.ApiEvent.AddApiEventListener("tabSwitch", (data) => {
  console.log("tabSwitch: ", data);
});

返回参数:

// 以 Excel 为例:
{
  tabKey: "InsertTab",
  tabKey: "StartTab",
  // ……更多状态看具体 tab
}

fileStatus

文件保存的事件回调

jssdk.ApiEvent.AddApiEventListener("fileStatus", (data) => {
  console.log("fileStatus: ", data);
});

返回参数:

{
  status: 0, // 文档无更新
  status: 1, // 版本保存成功, 触发场景:手动保存、定时保存、关闭网页
  status: 2, // 暂不支持保存空文件, 触发场景:内核保存完后文件为空
  status: 3, // 空间已满
  status: 4, // 保存中请勿频繁操作,触发场景:服务端处理保存队列已满,正在排队
  status: 5, // 保存失败
  status: 6, // 文件更新保存中,触发场景:修改文档内容触发的保存
  status: 7, // 保存成功,触发场景:文档内容修改保存成功
}

previewLimit

预览页数限制事件,当滚动到限制页数底部时触发事件

此事件只在预览页数模式下有效,仅支持 WordPPTPDF 组件

jssdk.ApiEvent.AddApiEventListener("previewLimit", (data) => {
  console.log("previewLimit: ", data);
});

返回参数:

// 文字
// 由于文字文档是流式排版,无法获取准确的真实页数,因此回调只有 total 一个参数
{
  total: 4; // 限制页数
}
// PPT 以及 PDF
{
  total: 4; // 限制页数
  realTotal: 10; // 真实总页数
}

hasDocMap

文档是否存在目录,如果存在目录则会执行回调。

此事件只存在于文字组件(Word),由于文字获取目录是动态分片获取,因此需要以监听事件方式确定是否存在目录。

jssdk.ApiEvent.AddApiEventListener("hasDocMap", (data) => {
  console.log("hasDocMap: ", data);
});

fullscreenchange

进入或者退出全屏时会执行回调

如果在 commonOptions 下配置了 isBrowserViewFullscreen 或者 isIframeViewFullscreen,此项监听会无效。

jssdk.ApiEvent.AddApiEventListener("fullscreenchange", (data) => {
  console.log("fullscreenchange: ", data);
});

返回参数:

{
  status: 0, // 退出全屏
  status: 1, // 进入全屏
}

webSocketStatus

返回 webSocket 的连接状态

jssdk.ApiEvent.AddApiEventListener("webSocketStatus", (data) => {
  console.log("webSocketStatus: ", data);
});

返回参数:

{
  status: '_online', // 已连接
  status: '_offline', // 已离线
  status: '_close', // 关闭连接
}

fileNameChange

文件名重命名的事件回调

当文件重命名(成功)后,会将新文件名返回出来。

jssdk.ApiEvent.AddApiEventListener("fileNameChange", (data) => {
  console.log("fileNameChange: ", data);
});

返回参数:

{
  fileName: "NewWebOffice";
}

filePasswordStatus

监听加密文件的密码相关状态

注意:该事件需要在 jssdk.ready() 之前进行注册

jssdk.ApiEvent.AddApiEventListener("filePasswordStatus", (data) => {
  console.log("filePasswordStatus: ", data);
});

返回参数:

{
  status: 'NeedPassword', // 需要输入密码
  status: 'InvalidPassword', // 密码验证错误
}

ModelVisible

模态框打开和关闭时触发,例如「更多 ➜ 打印」

jssdk.ApiEvent.AddApiEventListener("ModelVisible", (data) => {
  console.log("ModelVisible: ", data);
});

OnBroadcast

接收全局广播,用于多人协作场景。

jssdk.ApiEvent.AddApiEventListener("OnBroadcast", (data) => {
  console.log("OnBroadcast: ", data);
});