响应企业安全、效率需求,屏蔽、禁用、拦截、扩展云文档的导入导出等操作。

如何屏蔽\禁用\拦截\扩展文件操作项?

本定制方案仅适用于私有化WPS365版本

1. 方案概述

文档中心里,这些“新建”“导入”“上传”“导出”“分享”等按钮,都是文件操作项,企业用户可以使用这些按钮操作文件。

WURZUGZAAAABA7R4JUGZAABQF6QJOJEGZAADAD4T4WZQGZAABADG

有些企业可能出于安全、效率等需求,希望屏蔽\禁用、拦截、扩展部分文件操作项。

屏蔽\禁用指的是企业担心文档泄漏,希望完全禁止企业用户下载文档,想屏蔽\禁用WPS文档中心的下载按钮。屏蔽:指“操作项完全不可见”禁用:指“操作项可见,但点击后不生效”。
拦截指的是企业希望下级部门无法访问机密文档,希望WPS文档中心在企业用户打开文档前,先验证企业用户身分是否符合要求,如不符要求,就拦截企业用户的下载请求。(本文仅涉及“拦截”定制,权限验证的定制另有教学文档撰写中,敬请期待)
扩展有些企业希望提升员工的文件操作效率,想把第三方应用入口集成至文件操作项的菜单,方便企业用户快速选中。

我们可以使用文档中心Web端(PC端)、H5端(移动端)的开放能力,定制文件操作项:

实现方式&效果屏蔽禁用WVC7QIA4ACAHA点击999(1).txt后没有出现跳转,说明该操作已被禁用
拦截可在原有操作逻辑中插入一段开发者自定义的逻辑,如匹配权限或者插入审批后才能执行某操作。HJGACII4ABAHG拦截了收藏、分享等文件操作项
扩展ONRSKKQ4AAAGWWGSEKHJAABAAC在文档操作项菜单里,增加了“Demo示例”按钮在左上角菜单里,增加了“Demo示例”按钮
依赖版本每个位置的操作项定制,依赖的版本略有不同,操作流程里会有详细解说。但只要版本大于23-11a(含),即可实现本文提到的所有定制功能。
依赖操作系统支持X86、XC

2. 使用指南

👉定制范围总览

产品端适用场景说明
云文档PC对文件右键操作、更多操作提供拦截、扩展、屏蔽/禁用能力扩展适用于扩展新功能场景,如导出为、文件归档等屏蔽适用于如“下载”等场景拦截适用于在原有操作逻辑中插入一段客户自定义的逻辑,如匹配权限或者插入审批后才能执行某操作
云文档H5分享权限页面过滤菜单,文件列表更多面板菜单,文件点击拦截,新建面板扩展。适用场景同上

👉云文档PC端(Web端)可定制项

云文档PC端,可定制菜单功能的入口如下:

定制功能功能效果
右键空白处菜单4SBAMJI4AAACA
右键文件菜单、文件右侧更多菜单QXMQMJI4AAQAGW5I7URA4ABACK
新建文件扩展、点击拦截E6OQOJI4AAQGS
文件打开拦截OS3RCJI4ADQCC
文件操作拦截SEDQQJI4ABABI
顶部操作项扩展、点击拦截A56QQJI4AAADK

右键空白处菜单

能力:

功能能力适用版本是否支持多插件是否支持异步
修改sdk.kdrive.fileList.empty.rightMenu.onChange2023-0530
点击拦截sdk.kdrive.fileList.empty.rightMenu.onClick2023-0309

使用方法:

// 空白处右键新增过滤
sdk.kdrive.fileList.empty.rightMenu.onChange((data)=>{
  // 移除菜单,参数为要删除位置的索引
  data.menuList.remove(1);
  // 移除子菜单,第一个参数为父菜单的索引,第二个参数为子菜单的索引
  data.menuList.items()[0].children.remove(0);
  // 添加菜单,add方法第二个参数代表你要插入位置的索引
  data.menuList.add({ key: "demo", name: "DEMO示例" }, 1);
})

// 空白处右键拦截,包括子菜单
sdk.kdrive.fileList.empty.rightMenu.onClick((data)=>{
  // 此处可用data进行操作
  console.log(data);
  // return true拦截原有操作项,false则会调用原有逻辑
  return true;
})

📌 注意

新建和上传文件夹中的分割符也是一个菜单项。 多个插件进行菜单修改时,由于目前仅能确保预装插件先于非预装插件加载,而预装插件和非预装插件内部加载顺序不固定,所加菜单项位置可能不同。

效果:

F3NSGKQ4AAQEU

文件右侧更多菜单

右键文件菜单和文件右侧更多菜单共用同一个菜单列表,也是同一个能力

能力:

功能能力适用版本是否支持多插件是否支持异步
修改sdk.kdrive.fileList.rightMenu.onChange2023-0309
点击拦截sdk.kdrive.fileList.rightMenu.onClick2023-0309

使用方法:

// 右键菜单扩展事件
sdk.kdrive.fileList.rightMenu.onChange((data)=>{
  // 移除菜单,参数为要删除位置的索引
  data.operationList.remove(1);
  // 添加菜单,add方法第二个参数代表你要插入位置的索引,name也可以使用dom元素
  data.operationList.add({ key: "demo", name: "DEMO示例" }, 1);
})

// 右键菜单点击拦截
sdk.kdrive.fileList.rightMenu.onClick((data)=>{
  console.log(data);
  // return true拦截原有操作项,false则会调用原有逻辑
  return true;
})

📌 注意

分割符也是一个菜单项。 多个插件进行菜单修改时,由于目前仅能确保预装插件先于非预装插件加载,而预装插件和非预装插件内部加载顺序不固定,所加菜单项位置可能不同。

效果:

ONRSKKQ4AAAGW

新建文件扩展

云文档pc侧边栏新建文件点击拦截、扩展

能力:

功能能力适用版本是否支持多插件是否支持异步
点击拦截sdk.kdrive.aside.createFile.createPanel.onClick2023-0412
修改sdk.kdrive.aside.createFile.createPanel.onChange2023-0412

使用方法:

// 云文档pc侧边栏新建文件拦截
sdk.kdrive.aside.createFile.createPanel.onClick((data) => {
  console.log(data);
  // return true拦截原有操作项,false则会调用原有逻辑
  return true;
});

// 云文档pc侧边栏新建文件扩展
sdk.kdrive.aside.createFile.createPanel.onChange((data) => {
  // icon为dom元素
  data.createMenuList.items()[0].subList.add({ key: "demo", name: "DEMO示例", icon: <img src={cryptoPng} alt="" /> });
});

📌 注意

由于插件内部无法对其余使用点击拦截埋点的插件的点击逻辑进行拦截,例如当上架了模板库应用时,即使返回true拦截点击逻辑,也会存在点击创建文字等类型文件仍然弹出模板库页面的情况

效果:

GB4UMKQ4ADQEK

云文档文件列表上方新建操作点击拦截、扩展

能力:

功能能力适用版本
加载sdk.kdrive.fileListTopMenu.createMenu.onMounted2023-1109
点击拦截sdk.kdrive.fileListTopMenu.createMenu.onClick2023-0412
添加sdk.kdrive.fileListTopMenu.uploadMenu.onAdded2023-0412
隐藏sdk.kdrive.fileListTopMenu.uploadMenu.hide2023-0412

使用方法:

// 上传面板屏蔽
sdk.kdrive.fileListTopMenu.uploadMenu.onAdded(() => {
  // 隐藏上传面板
  sdk.kdrive.fileListTopMenu.uploadMenu.hide();
});

// 新增面板扩展
sdk.kdrive.fileListTopMenu.createMenu.onMounted((data) => {
  // 仅添加一次
  if (~data.menuList.items().findIndex((item) => item.name === "DEMO示例")) return;
  // name可以用dom元素
  data.menuList.add({ name: "DEMO示例", key: "demo" });
  // 移除菜单
  data.menuList.remove(1);
  // 可以按照对应格式批量修改
  // data.setMenuList(data.menuList.items());
});

// 新增面板菜单点击拦截
sdk.kdrive.fileListTopMenu.createMenu.onClick((data) => {
  console.log(data);
  // return true拦截原有操作项,false则会调用原有逻辑
  return true;
});

效果:

KE4EUKQ4ADAFE

文件打开拦截

能力:

功能能力适用版本是否支持多插件是否支持异步
点击拦截sdk.kdrive.fileList.file.onClick2023-0511

使用方法:

sdk.kdrive.fileList.file.onClick((data)=>{
  console.log(data)
  // return true拦截原有操作项,false则会调用原有逻辑
  return true
})

📌 注意

影响范围较大,最近、星标、共享、我的文档、我的团队、团队文档、回收站、搜索、常用等位置的文件列表的文件点击事件均会拦截。

效果:

WVC7QIA4ACAHA

文件操作拦截

包括星标、分享等功能的点击拦截

能力:

功能能力适用版本是否支持多插件是否支持异步
点击拦截sdk.kdrive.fileList.star.onClick2023-0412
点击拦截sdk.kdrive.fileList.file.share.onClick2023-0720

使用方法:

// 文件列表星标点击拦截
sdk.kdrive.fileList.star.onClick((data) => {
  console.info(data, "star");
  // return true拦截原有操作项,false则会调用原有逻辑
  return true;
});
// 文件列表分享点击拦截
sdk.kdrive.fileList.file.share.onClick((data) => {
  console.info(data, "share");
  // return true拦截原有操作项,false则会调用原有逻辑
  return true;
});

效果:

HJGACII4ABAHG

文件选中顶部操作项

能力:

功能能力适用版本是否支持多插件是否支持异步
修改sdk.kdrive.fileListSelectTopMenu.onChange2023-1109
点击sdk.kdrive.fileListSelectTopMenu.onClick2023-0511

使用方法:

// 文件列表选中操作菜单扩展
sdk.kdrive.fileListSelectTopMenu.onChange((data)=>{
  // 过滤下载按钮
  const index = data.operateList.items().findIndex((item) => item.text === "下载");
  data.operateList.remove(index);
  // 仅添加一次
  if (~data.operateList.items().findIndex((item) => item.key === "demo")) return;
  // disabled判断是否禁用
  data.operateList.add({ key: "demo", text: "DEMO示例", disabled: false });
})
// 文件列表选中操作菜单点击拦截
sdk.kdrive.fileListSelectTopMenu.onClick((data)=>{
  console.log(data)
  // return true拦截原有操作项,false则会调用原有逻辑
  return true
})

效果:

255UWKQ4ACQBE

👉云文档移动端(H5端)

云文档H5端,可定制菜单功能的入口如下:

定制功能功能效果
分享权限页面过滤菜单CRGRGJI4ACAA4
文件列表更多面板菜单L2IRGJI4ADAAG
文件点击拦截APORGJI4AAAFE
新建面板扩展NIERIJI4AAQAG

分享权限页面过滤菜单

能力

功能能力适用版本是否支持多插件是否支持异步
修改sdk.kdriveMobile.sharePermissionPage.onChange2023-0824

使用方法

sdk.kdriveMobile.sharePermissionPage.onChange(async (data)=>{
  // 移除菜单,参数为要删除位置的索引
  data.permissionOptions.remove(1)
})

📌 注意

仅支持过滤,不支持添加

效果

CP4X4HA4ACQAA

文件列表更多面板菜单

能力

功能能力适用版本是否支持多插件是否支持异步
修改sdk.kdriveMobile.common.filePanel.menu.onChange2023-0625

使用方法

sdk.kdriveMobile.common.filePanel.menu.onChange((data) => {
  // 移除菜单,参数为要删除位置的索引
  data.operationList.remove(1);
  // 添加菜单,icon为图标src地址,add方法第二个参数代表你要插入位置的索引
  data.operationList.add({ name: "DEMO示例", key: "demo", icon: cryptoPng }, 0);
});

效果

PYOU6KQ4ABACM

文件点击拦截

能力

功能能力适用版本是否支持多插件是否支持异步
点击拦截sdk.kdriveMobile.fileList.file.onClick2023-0810

使用方法

sdk.kdriveMobile.fileList.file.onClick((data)=>{
  console.log(data)
  // return true拦截原有操作项,false则会调用原有逻辑
  return true
})

效果

YXKR6II4ACQFS

新建面板扩展

能力

功能能力适用版本是否支持多插件是否支持异步
修改sdk.kdriveMobile.createNewFile.panel.onChange2023-0530

使用方法

sdk.kdriveMobile.createNewFile.panel.onChange((data) => {
  // 添加菜单,icon为dom元素,add方法第二个参数代表你要插入位置的索引
  data.add({ menuKey: "demo", text: "DEMO示例", icon: <img src={cryptoPng} alt="" /> }, 0);
  // 移除菜单,参数为要删除位置的索引
  data.remove(1);
});

📌 注意

不支持点击拦截

效果

3JJFAKQ4ABQBC

相关新闻

  • 限制用户下载特定文件

    限制用户下载特定文件

    在员工离职或出于其它安全考虑,企业需要对员工创建或管理的文件进行管控,或对扫描出敏感信息的文件进行管控,限制文件下载。 如何限制企业用户下载特定文件 本定制方案仅适用于私有化WPS365版本 1. 方案概述 员工离职前,出于安全考虑,企业会对其创建或管理的文件进行管控。 管控会有两个实现方式: 有安全管控需求时,比如文件扫描出敏感信息,用户的网络环境(内网或外网)、文件大小不满足管理规定,都有可能需要限制下载。 针对这两种情况,我们可以使用文档中心Web端(PC端)的开放能力,定制下载功能: 实…

    最佳实践 2025年12月11日
  • PDF转Word全流程解决方案

    PDF转Word全流程解决方案

    方案简介 基于WPS WebOffice开放平台的格式转换能力,构建企业级文档中台,实现标书协议、合同管理、档案等PDF文件的自动化转换、结构化处理与业务系统无缝集成。 WPS WebOffice格式转换服务:提供PDF→Word的精准转换能力。支持保留原PDF的字体、段落、表格、图片等元素,针对扫描件PDF,支持OCR识别,支持单次上传100+文件批量转换。 企业文档中台:作为转换服务的调度中心和数据枢纽,实现转换流程与现有业务系统的无缝对接。拥有操作日志审计,完整记录转换操作的人员、时间、文…

    最佳实践 2025年12月11日
  • 文档中心定制功能多语言适配

    文档中心定制功能多语言适配

    满足企业的多语言需求,为文档中心的定制功能提供多语言适配方案。

    最佳实践 2025年12月11日
  • 自定义文件传输面板

    自定义文件传输面板

    自定义文件传输面板,解决将文件从邮件、OA等系统中拉取文件上传到云文档过程中,传输进度无法跟踪的问题 定制导致文档上传逻辑改变,传输面板无法正常唤起,怎么办? 本定制方案仅适用于私有化WPS365版本 1. 方案概述 用户上传文件时,文档中心页面会出现一个显示“文件上传进度”的面板,这就是传输面板。 上传文件时 这里会显示上传进度,这就是“传输面板” 当企业在WPS文档中心上做了某些定制能力,可能导致WPS文档中心原有的上传逻辑被改变,影响传输面板的正常唤起,使得企业用户上传文件时,无从得知“文…

    最佳实践 2025年12月11日
  • 扩展文件属性字段

    扩展文件属性字段

    企业需要在文件属性后打标签,方便后续查找和管理文件。

    最佳实践 2025年12月11日
  • 双因子认证

    双因子认证

    企业出于安全考虑,需要在修改功能或登录密级较高的页面时,对成员进行二次身份校验 企业需要双因子认证时,可以怎么操作? 该组件仅适用于私有化WPS365版本 1. 方案概述 一般来讲,用户登录的安全认证分为两种: 文档中心使用的是单因子认证的方式。 出于安全考虑,企业需要在修改定制应用功能前,比如修改消息审计、全局配置前。 或登录密级较高的页面时,对成员进行二次身份校验。 针对这种情况,我们可以使用文档中心管理后台的开放能力,定制双因子认证 实现效果 用户登录管理后台时,页面会跳出窗口,提醒用户绑…

    最佳实践 2025年12月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

立即咨询 立即试用 上门服务

请您留言

感谢您的关注,你可留下联系方式,我们将第一时间与您联系。