当前位置: 首页 > news >正文

onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】

        连接器是onlyoffice调用web api的一个基础工具,可以方便开发者或者用户与业务系统结合使用web功能。

        关于connector官方说明文档在这里:Automation API - ONLYOFFICE Api Documentation

        注意:该功能针对开发者版、企业版,社区版常规不支持此功能。因此这里为了方便交流学习,给开发者提供一个演示环境。如果你有疑问或者其他需求,可以联系我,具体我会放到最后。

http://47.94.91.67:10100/web-apps/apps/api/documents/api.js

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

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

二、核心快初步说明

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

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

        3、attachEvent、detachEvent也就是绑定、解绑事件,这个比较常规。文档在这:Events - ONLYOFFICE Api DocumentationONLYOFFICE Developer APIicon-default.png?t=N7T8https://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】

相关文章:

onlyoffice连接器(connector)开发使用精讲 二次开发 深入开发【一】

连接器是onlyoffice调用web api的一个基础工具,可以方便开发者或者用户与业务系统结合使用web功能。 关于connector官方说明文档在这里:Automation API - ONLYOFFICE Api Documentation 注意:该功能针对开发者版、企业版,社区版常…...

VAuditDemo安装漏洞

目录 VAuditDemo安装漏洞 index.php header.php config.php lib.php install.php 分析结果 漏洞利用 第一步:删除install.lock文件,访问 install.php 抓包 第二步:通过审计构造payload 第三步:修改抓包请求内容&#x…...

算法学习-2024.8.16

一、Tensorrt学习补充 TensorRT支持INT8和FP16的计算。深度学习网络在训练时,通常使用 32 位或 16 位数据。TensorRT则在网络的推理时选用不这么高的精度,达到加速推断的目的。 TensorRT对于网络结构进行了重构,把一些能够合并的运算合并在了…...

ansible环境搭建

任务背景 公司的服务器越来越多, 维护⼀些简单的事情都会变得很繁琐。⽤ shell脚本来管理少量服务器效率还⾏, 服务器多了之后, shell脚本⽆ 法实现⾼效率运维。这种情况下,我们需要引⼊⾃动化运维⼯具, 对 多台服务器实现⾼效运维。 任务要求 通过管理服务器能够…...

在线陪玩App小程序源码开发:技术挑战与解决方案

随着互联网技术的飞速发展和用户需求的多样化,在线陪玩App小程序逐渐在游戏娱乐领域占据了一席之地。这类小程序不仅为用户提供了丰富的娱乐体验,也为开发者带来了新的机遇。然而,在开发过程中,数据处理、性能优化、系统扩展性和安…...

iOS profiles文件过期如何更新

创建发布用的Certificates 首先进入到https://developer.apple.com/account页面选择【证书】进入【新建证书】页面 点击【新建证书】按钮: 根据需求选中对应的【证书类型】,我选的是【Apple Distribution】, 开发者证书选择【Apple Devel…...

C/C++|C++标准库 string 流之std::ostringstream 和 std::istringstream 流

我们在 sstream 头文件中定义了三个类型来支持内存IO(ostringstream\istringstream\stringstream),这些类型可以向 string 写入数据,这里我们主要讲: std::ostringstream 和 std::istringstream( C Primer 中文版第五版) 以上的两个类型都继…...

Java-Redis

文章目录 基础基础内容使用场景/功能常见数据类型下载与安装可视化(多个)发布订阅功能事务两种持久化主从模式哨兵模式集群模式Cluster缓存淘汰过期删除缓存一致 Cache Aside缓存击穿缓存穿透缓存雪崩 实战内容配置文件配置Redis的BeanRedis为什么这么快…...

requests快速入门

1 安装requests库 如果你还没有安装requests库,可以通过pip安装: pip install requests 2 GET请求 GET请求通常用于从服务器请求数据。使用requests.get()函数可以发送GET请求。 2.1 基本使用 import requests url https://api.example.com/da…...

企业高性能web服务器——Nginx

# 企业高性能web服务器 1、Nginx 编译安装 1.1 编译安装 Nginx 这里下载nginx-1.24.0.tar.gz和nginx-1.26.1.tar.gz可以在官方网站上下载:https://nginx.org/en/download.html 示例:nginx-1.24.0.tar.gz #提前将编译安装出现问题的安装包下载好&…...

FreeSWITCH Java ESL Client Demo

1简介 在开启Java ESL Client编程之前,请先阅读《FreeSWITCH权威指南》学习什么是FreeSWITCH Event Socket。 Java连接FreeSWITCH的ESL可以采用两种模式:inbound和outbound。 Inbound模式:Java应用作为客户端主动连接到FreeSWITCH的内置TCP…...

手摸手系列之Linux下根据自己的jdk包构建docker镜像

项目在本地导出PDF文件正常,部署到Linux服务器docker容器中导出就报错,百撕不得姐,经查,docker依赖的openjdk版本是8u112版本,而我本地是8u421版本,那就升级jdk的小版本试试。 在docker的中央仓库[点我直达…...

tomcat相关

一、部署安装tomcat 在10和20上安装tomcat [root10 ~]# dnf install java-1.8.0-openjdk.x86_64 -y #安装java环境 [root10 ~]# tar zxf apache-tomcat-9.0.93.tar.gz -C /usr/local/ #安装并启动tomcat [root10 ~]# ln -s /usr/local/apache-tomcat-9.0.93/ /usr/local/tomcat…...

20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动

20240821给飞凌OK3588-C的核心板刷Rockchip原厂的Buildroot并启动 2024/8/21 15:22 viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh lunch 3. rockchip_rk3588_evb7_…...

服务优雅上下线优雅停机

一、目的 服务发生线程锁住,需要下线服务时,保证请求中的接口不受影响,执行完后,再下线服务 二、步骤 *kill -15时执行改钩子函数 优雅停机 1.当线程锁住 2.运维那边监控到,然后进行kill -15 进程ID 3.代码这边监…...

什么是生信分析?深入探讨生物信息学的技术、方法与广泛应用

介绍 生物信息学分析,简称生信分析,是一个结合了生物学、计算机科学、信息学和统计学的多学科领域,旨在处理、分析和解释海量的生物数据。随着现代生物技术的发展,尤其是高通量测序(Next-Generation Sequencing, NGS&…...

JavaScript判断数组是否包含某个值

目录&#xff1a; 1.for循环/while循环2.数组的some方法3.数组的filter方法4.array.indexOf5.array.findIndex6.array.includes7.array.find8.set中的has方法 1.for循环/while循环 for循环: function contains(arr, val) {for (var i 0; i < arr.length; i) {if (arr[i] …...

C# - 如何在Windows系统中通过C#添加新的PATH条目至系统和用户环境变量

编写系统环境变量-->系统变量-->path-->添加新的列 01:直接写 using Microsoft.Win32; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace updatesystempath01 {class Program{stati…...

Unity | Shader基础知识(第二十二集:两次渲染)

目录 一、前言 二、“渲染两次” 三、本次成品介绍 四、第一次渲染代码 五、第二次渲染代码 六、截止目前的所有代码 七、调整代码 八、总结 一、前言 之前一直讲的shader文件中&#xff0c;都只写了一次CG代码。 为了大家对这部分的整体理解&#xff0c;我们这次渲…...

鸿蒙Harmony实战开发:Arkts构造函数

构造函数 类声明可以包含用于初始化对象状态的构造函数。 构造函数定义如下&#xff1a; constructor ([parameters]) {// ... } typescript 如果未定义构造函数&#xff0c;则会自动创建具有空参数列表的默认构造函数&#xff0c;例如&#xff1a; class Point {x: numbe…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

AD学习(3)

1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分&#xff1a; &#xff08;1&#xff09;PCB焊盘&#xff1a;表层的铜 &#xff0c;top层的铜 &#xff08;2&#xff09;管脚序号&#xff1a;用来关联原理图中的管脚的序号&#xff0c;原理图的序号需要和PCB封装一一…...