连接器是onlyoffice调用web api的一个基础工具,可以方便开发者或者用户与业务系统结合使用web功能。
关于connector官方说明文档在这里:Automation API - ONLYOFFICE Api Documentation
注意:该功能针对开发者版、企业版,社区版常规不支持此功能。因此这里为了方便交流学习,给开发者提供一个演示环境。如果你有疑问或者其他需求,可以联系我,具体我会放到最后。
<script src="http://47.94.91.67:10100/web-apps/apps/api/documents/api.js"></script>
一、关于连接器(connector)的初步介绍
对于绝大部分开发者而言,很多情况下都是简单的操作一下文档,做一些和业务系统相关操作的功能,使用到:callCommand 、executeMethod、attachEvent、detachEvent这四个核心块api模块。我本人用的比较深入,也基本只用到上面4个,本教程范围也就是上面四个核心块。
二、核心块初步说明
1、callCommand()。基础api调用模块,用于组合并执行复杂api或者自定义代码,100%的情况你都需要使用。文档在这:Overview - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIhttps://api.onlyoffice.com/officeapi/basic
2、executeMethod()。直接执行某个api,它与callCommand的区别是:callCommand是自己写代码执行也就是执行function(){xxxxx}方法体,executeMethod执行的只是某一个方法。后面的Demo中将会有更直观的展示,一看就懂。文档在这:executeMethod - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIhttps://api.onlyoffice.com/plugin/executemethod
3、attachEvent、detachEvent也就是绑定、解绑事件,这个比较常规。文档在这:Events - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIhttps://api.onlyoffice.com/plugin/events
三、示例与详解
/**
* 全局初始化连接器
*/
var connector = docEditor.createConnector()
callCommand介绍
callCommand执行的是自定义的方法体,比如:增加批注,先查找文档AddComment - ONLYOFFICE Api Documentation,然后参照使用红框部分即可【图1】:
// Asc.scope为入参,需要传入方法体的对象
Asc.scope.text = "Hello world!";
connector.callCommand(function() {
var oDocument = Api.GetDocument();
var oParagraph = oDocument.GetElement(0);
oParagraph.AddText(Asc.scope.text);
Api.AddComment(oParagraph, "ONLYOFFICE for developers", "Jane", "uid-1");
}, function() { console.log("执行完成回调"); });
图1
callCommand结束,更多的api开发者可以自行查看,使用方法都是一样的:AddComment - ONLYOFFICE Api Documentation
executeMethod介绍
executeMethod是直接执行某个方法,可以执行的方法在这:executeMethod - ONLYOFFICE Api Documentation
connector.executeMethod ("AddComment", [
{
"UserName": "John Smith",
"QuoteText": "text",
"Text": "comment",
"Time": "1662737941471",
"Solved": true,
"Replies": [
{
"UserName": "Mark Potato",
"Text": "reply 1",
"Time": "1662740895892",
"Solved": false
}
]
}
], function (comment) {
console.log (comment)
});
参数解释,AddComment【方法名】,[arg1, arg2, arg3..........]该方法入参使用数组方式传入,回调方法。实际调用为:
function AddComment(paramObj){
return comment;
}
var comment = AddComment({
"UserName": "John Smith",
"QuoteText": "text",
"Text": "comment",
"Time": "1662737941471",
"Solved": true,
"Replies": [
{
"UserName": "Mark Potato",
"Text": "reply 1",
"Time": "1662740895892",
"Solved": false
}
]
});
executeMethod结束
attachEvent、detachEvent介绍
attachEvent、detachEvent就是常规的前端事件绑定,关于这一块就比较简单理解了,只能用Demo展示一下,这里不深入讲解。具体的需要开发者自行使用。可以绑定的事件在这:Events - ONLYOFFICE Api Documentation
/**
* 绑定事件
*/
connector.attachEvent("onAddComment", function(){
console.log("event: onAddComment");
});
/**
* 解绑事件
*/
connector.detachEvent("onAddComment");
attachEvent、detachEvent结束
四、总结
callCommand是100%情况都需要使用到的。attachEvent、detachEvent部分情况会使用。executeMethod因为只执行单个方法,用的地方就少一些,大部分都是用callCommand代替。
连接器简单使用就是上面这些,但是实际用法比这个深入得多,后续会开【第二期讲解】。
五、交流与联系
我本人主要研究实现的api和源码,用以开发自己的独立版本系统,实现更多的实用功能,如果你需要独立部署也可以V我【cao_rui_jian_xiong】,希望和大家多多交流。