提及用户
以下图示和步骤解释了ONLYOFFICE 文档中提及功能的工作原理。
- 用户在文档编辑器的评论字段中输入
+或@。 - 文档编辑器向文档管理器请求可以被提及的用户列表。
- 文档管理器将用户列表返回给文档编辑器,并显示在评论字段下方。
- 用户选择姓名、输入评论并提交。
- 文档编辑器将评论文本、被提及用户的电子邮件列表以及操作链接数据发送给文档管理器。
实际操作方法
-
创建一个
.html文件以打开文档。 -
在编辑器初始化配置中,定义 onRequestUsers 事件处理程序。当用户在评论中输入
+或@时,编辑器会调用此处理程序,并将event.data.c设置为"mention"。您的代码必须调用 setUsers 方法来返回可提及的用户列表:
function onRequestUsers(event) {docEditor.setUsers({c: event.data.c,users: [{email: "john@example.com",name: "John Smith",},{email: "kate@example.com",name: "Kate Cage",},],});}const config = {events: {onRequestUsers,},};const docEditor = new DocsAPI.DocEditor("placeholder", config); -
定义 onRequestSendNotify 事件处理程序,用于向被提及的用户发送通知。当用户提交包含提及的评论时,编辑器会调用此处理程序,传递以下参数:
event.data.message— 评论文本event.data.emails— 被提及用户的电子邮件地址列表event.data.actionLink— 描述评论在文档中位置的对象
备注只有设置了
onRequestSendNotify事件后,评论字段中的+/@提及按钮才会显示。在5.4版本中,onRequestSendNotify只有在设置了 onRequestUsers 的情况下才能使用。从5.5版本开始,两个事件可以独立设置。function onRequestSendNotify(event) {const ACTION_DATA = event.data.actionLink;const comment = event.data.message;const emails = event.data.emails;NOTIFY_USERS(emails, comment, ACTION_DATA);}const config = {events: {onRequestSendNotify,},};const docEditor = new DocsAPI.DocEditor("placeholder", config);NOTIFY_USERS是您的服务端逻辑的占位符,用于向被提及的用户发送通知。请包含ACTION_DATA,以便通知链接能够在文档中直接打开评论位置。
打开评论
- 被提及的用户通过通知中的链接(例如电子邮件)打开文档,导航到文档管理器。
- 文档管理器使用包含评论位置数据的
actionLink参数初始化文档编辑器的config。 - 文档编辑器打开文档并滚动到评论位置。
与操作链接类似,将从 onRequestSendNotify 事件中获取的 actionLink 对象作为 editorConfig.actionLink 的值传递:
const config = {
editorConfig: {
actionLink: ACTION_DATA,
},
};
const docEditor = new DocsAPI.DocEditor("placeholder", config);
共享设置
当 onRequestSendNotify 触发时,集成商负责向被提及的用户授予文件访问权限,并向其发送包含操作链接的通知。
如果文档配置中已包含 document.info.sharingSettings 列表,且提及后用户集合发生变化,请调用 setSharingSettings 方法更新显示的共享列表:


docEditor.setSharingSettings({
sharingSettings: [
{
permissions: "Full Access",
user: "John Smith",
},
{
isLink: true,
permissions: "Read Only",
user: "External link",
},
],
});
如果 onRequestSendNotify 未向被提及的用户授予文件访问权限,请将 mentionShare 设置为 false 以隐藏评论中的共享界面。
