跳到主要内容

Automation API

连接器是一个允许从外部源编辑文本文档、电子表格、演示文稿和可填写表单的类。使用"自动化API" 的示例可以在 此处 找到。

要创建连接器,请使用文档编辑器对象的 createConnector 方法 :

const connector = docEditor.createConnector()

请注意,连接器仅适用于 ONLYOFFICE 开发者版

连接器是 ONLYOFFICE 开发者版默认不包含的附加功能,需要额外付费才能使用。请联系我们的销售团队 sales@onlyoffice.com 获取报价。

连接器与插件具有相同的接口。下面可以找到可用于此类的方法。

addContextMenuItem

调用该函数将项目添加到上下文菜单。上下文菜单的操作过程与 plugins 相同,但 onClick 方法除外,该方法用于代替通过 ID 订阅。

参数 :

名称类型描述
itemsArray.<ContextMenuItem>包含上下文菜单项参数的数组。

ContextMenuItem

名称类型描述
idstring项目 ID。
textstring项目标题。
datastring项目数据(此数据将发送到点击事件回调)。
disabledboolean指定当前项是否已禁用。
iconsstring项目图标(请参阅插件 config documentation)文档)。
onClickfunction点击事件回调。
itemsArray.<ContextMenuItem>包含当前项的上下文菜单项的数组。

示例:

connector.attachEvent("onContextMenuShow", (options) => {
connector.addContextMenuItem([{
text: "mainItem",
onClick: () => {
console.log("[CONTEXTMENUCLICK] menuSubItem1")
},
}])
})

addToolbarMenuItem

调用该函数将项目添加到工具栏菜单。使用工具栏菜单的过程与 plugins 相同,除了使用 onClick 方法代替通过 ID 订阅。

参数:

名称类型描述
itemsToolbarMenuMainItem工具栏主菜单项参数。

ToolbarMenuMainItem

名称类型描述
guidstring插件 guid。
tabsArray.<ToolbarMenuTab>包含当前工具栏菜单选项卡的数组项。

ToolbarMenuTab

名称类型描述
idstring选项卡 ID。
textstring选项卡文本。
itemsArray.<ToolbarMenuItem>包含当前标签的工具栏菜单项的数组。

ToolbarMenuItem

名称类型描述
idstring项目 ID。
typeToolbarMenuItemType项目类型。
textstring项目标题。如果此字段为"",则工具栏按钮仅显示图标,不显示标题。
hintstring项目提示。
iconsstring对象
disabledboolean指定当前项目是否已锁定。
enableToggleboolean指定工具栏菜单项(当 "split == false" 时)或其顶部(当 "split == true" 时)是否可以切换。
lockInViewModeboolean指定工具栏菜单项是否在视图模式(预览、查看表单、断开连接等时)中自动锁定。
separatorboolean指定工具栏菜单项之间是否使用分隔符。
splitboolean指定工具栏菜单项是否分为两部分并包含下拉菜单。
onClickfunction点击事件回调。
itemsArray.<ToolbarMenuItem>包含当前项的上下文菜单项的数组。

ToolbarMenuItemType

工具栏菜单项类型。buttonbig-button 值相同,可以同样用于指定工具栏按钮。

类型: "button" | "big-button"

示例:

connector.addToolbarMenuItem({
tabs: [
{
text: "Connector",
items: [
{
id: "toolConnector1",
type: "button",
text: "Meaning",
hint: "Meaning",
lockInViewMode: true,
icons: "./icon.svg",
items: [
{
id: "toolC1",
text: "Text",
data: "Hello",
onClick: (data) => {
console.log(`[TOOLBARMENUCLICK]: ${data}`)
},
},
],
},
],
},
],
})

attachEvent

被调用以添加事件侦听器的函数,该函数将在指定事件传递到目标时被调用。所有可用事件的列表与插件的列表相同。

参数:

名称类型描述
namestring事件名称。
callbackfunction事件侦听器。

示例:

connector.attachEvent("onChangeContentControl", (obj) => {
console.log(`[EVENT] onChangeContentControl: ${JSON.stringify(obj)}`)
})

callCommand

调用的函数,用于将数据发送回编辑器。它允许连接器发送可以插入到结果文档文件中的结构化数据(格式化的段落、表格、文本部分和单独的单词等)。

ONLYOFFICE 文档生成器 命令只能用于创建内容并将其插入文档编辑器 (使用 Api.GetDocument().InsertContent(...))。由于在线编辑器中的联合编辑功能,存在此限制。

参数:

名称类型描述
commandfunction定义用JavaScript编写的命令,其目的是形成可插入结果文档文件(格式化段落、表格、文本部分和单独单词等)的结构化数据。然后将数据发送给编辑器。该命令必须与 Office JavaScript API 语法兼容。
callbackfunction方法返回的结果。这是一个可选参数。
isNoCalcboolean定义是否可以重新计算文档。true 值用于在执行 command 参数中的函数后重新计算文档。false 值不会重新计算文档 (仅当您的编辑肯定不需要重新计算文档时才使用它)。默认值为 false

此方法在与其他JavaScript数据隔离的上下文中执行。此方法在与其他JavaScript数据隔离的上下文中执行。如果需要将某些参数或其他数据传递给此方法,请使用 Asc.scope 对象。

示例:

connector.callCommand(() => {
const oDocument = Api.GetDocument()
const oParagraph = Api.CreateParagraph()
oParagraph.AddText("Hello")
oDocument.InsertContent([oParagraph])
}, () => {
console.log("[COMMAND] Callback command")
})

连接

调用该函数将连接器连接到编辑器。

请注意,只有在使用 disconnect 方法断开连接器并需要再次将其连接到编辑器时,才应调用此方法。创建连接器时,不需要使用 connect 方法,因为它会与 createConnector 方法一起自动调用。

示例:

connector.connect()

createWindow

调用该函数来创建 connector modal window 以在编辑器内显示附加信息。

示例:

const testConnectorWindow = connector.createWindow()

detachEvent

调用该函数以删除事件侦听器。

参数:

名称类型描述
namestring事件名称。

示例:

connector.detachEvent("onChangeContentControl")

disconnect

调用该函数以断开连接器与编辑器的连接。

示例:

connector.disconnect()

executeMethod

调用该函数以使用连接器执行某些编辑器方法。这些方法的完整列表与插件相同。

参数:

名称类型描述
namestring必须执行的特定方法的名称。
argsarray正在使用的方法具有的参数(如果有)。
callbackfunction方法返回的结果。这是一个可选参数。

示例:

connector.executeMethod("GetCurrentWord", [], (word) => {
console.log(`[METHOD] GetCurrentWord: ${word}`)
})

updateContextMenuItem

调用该函数来使用指定项更新上下文菜单中的项。

参数:

名称类型描述
itemsarray of ContextMenuItem包含上下文菜单项参数的数组。

ContextMenuItem

名称类型描述
idstring项目 ID。
textstring项目文本。
datastring项目数据(此数据将发送到点击事件回调)。
disabledboolean指定当前项目是否已禁用。
iconsstring项目图标(请参阅插件 config 文档)。
itemsarray of ContextMenuItem包含当前项的上下文菜单项的数组。

示例:

const items = [
{
id: "onConvert",
text: "Convert to Markdown or HTML",
},
]

connector.updateContextMenuItem(items)

Connector window

Connector window 是一个代表连接器窗口的类。要创建它,请使用 connector 对象的 createWindow 方法。

您可以在下面找到此类可用的方法。

attachEvent

调用函数来向模态窗口框架添加事件监听器。每当将指定事件传递给目标时,都会调用此函数。所有可用事件的列表与插件的列表相同。

参数:

名称类型描述
idstring事件名称。
actionfunction事件侦听器。

示例:

testConnectorWindow.attachEvent("onWindowMessage", (message) => {
console.log(`panel message: ${message}`)
})

dispatchEvent

调用函数来将事件发送到模态窗口框架。所有可用事件的列表与插件的列表相同。

参数:

名称类型描述
namestring事件名称。
datastring / object事件数据。

示例:

testConnectorWindow.dispatchEvent("messageName", {
prop: "value",
})

show

调用函数来在编辑器内显示模态窗口。

参数:

名称类型描述
settingsobject模态窗口参数与插件 variations 相同。

示例:

testConnectorWindow.show({
url: "./window/panel.html",
description: "Panel example!",
type: "panel",
buttons: [],
icons: "./icon.svg",
})

在连接器窗口代码中,您还可以使用以下方法:

attachEvent

调用函数来订阅来自插件的消息。

参数:

名称类型描述
idstring事件名称。
actionfunction事件侦听器。

返回:此方法不返回任何数据。

示例:

window.Asc.plugin.attachEvent("messageName", (message) => {
console.log(message)
})

sendToPlugin

调用函数来从模态窗口向编辑器发送消息。

参数:

名称类型描述
namestring事件名称。
dataobject事件数据。

示例:

window.Asc.plugin.sendToPlugin("onWindowMessage", {type: "onWindowReady"})