admin管理员组

文章数量:1644427

        连接器是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>

进阶API文档:

    onlyoffice进阶版 API文档    onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【二】-CSDN博客

进阶说明文档:onlyoffice进阶版 说明文档

一、关于连接器(connector)的初步介绍

        对于绝大部分开发者而言,很多情况下都是简单的操作一下文档,做一些和业务系统相关操作的功能,使用到:callCommand 、executeMethod、attachEvent、detachEvent这四个核心块api模块。我本人用的比较深入,也基本只用到上面4个,本教程范围也就是上面四个核心块。

二、核心块初步说明

        1、callCommand()。基础api调用模块,用于组合并执行复杂api或者自定义代码,100%的情况你都需要使用。文档在这:Overview - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIhttps://api.onlyoffice/officeapi/basic

        2、executeMethod()。直接执行某个api,它与callCommand的区别是:callCommand是自己写代码执行也就是执行function(){xxxxx}方法体,executeMethod执行的只是某一个方法。后面的Demo中将会有更直观的展示,一看就懂。文档在这:executeMethod - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIhttps://api.onlyoffice/plugin/executemethod

        3、attachEvent、detachEvent也就是绑定、解绑事件,这个比较常规。文档在这:Events - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIhttps://api.onlyoffice/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和源码,用以开发自己的独立版本系统,实现更多的实用功能,如果你需要独立部署也可以软件上找我,希望和大家多多交流。

本文标签: 连接器ONLYOFFICEconnector