JavaScript开发WPS加载项(二)

JavaScript开发WPS加载项(二)

在使用JavaScript开发WPS加载项(一)中,我们初步了解了如何创建一个WPS的加载项目,并简单了解了如何编写插件,本文我们介绍,如下内容:

如何进行加载项的调试。 善用REPL。 如果发布部署。

一、调试

一个Js的加载项被加载后按ALT+F12快捷键,可以打开DevTool,熟悉前端开发的同学,应该不会陌生,熟悉的配方,熟悉的味道。

... WPS加载项调试演示

二、REPL

刚看到repl这个词的时候有的同学可能会觉得陌生,应该叫做交互式解析器。

R(read)、E(evaluate)、P(print)、L(loop)

读取、解析、输出、循环此过程,周而复始。

为什么要提到REPL,很大一部分原因是我使用Clojure/ClojureScript的缘故。

善用这个工具,我们可以随时验证自己的想法,以一种非常直观的方式在测试代码。

... REPL演示图
// 设置当前单元格值 wps.Application.ActiveCell.Value2="Hello"; // 绑定事件 wps.ApiEvent.AddApiEventListener("SheetChange",()=>console.log("单元格改变了"));

三、发布部署

加载项开发完成后需要交付给客户,现对官方给出的开发文档中细节部分进行补充。

根据官方文档介绍,JavaScript开发的加载项有两种部署模式可选:

publish模式(适用于:企业版20200425分支之后版本) jsplugins.xml模式(适用于:2019版本,2020发的版本)。

且这两种模式都需要一个用于部署的服务器(其中jsplugins.xml模式可以实现纯离线模式部署,就是不需要服务器,需要手工部署,对于用户来说不是很友好)。

publish模式是最方便的,但仅适用于企业版。

... publish模式演示

本机未安装WPS企业版,我们选择jsplugins.xml模式继续本文后续内容。

jsplugins.xml模式的部署步骤如下:

使用wpsjs build编译加载项目(分为在线和离线两种模式)。 将编译完成的文件及 jsplugins.xml部署到服务器(直接拷贝到服务器上)。 用户在本地修改oem.ini文件以定位加载项部署服务器。

我们逐一讲解一下部署涉及到的一些细节问题。

在线和离线的区别:

在线顾名思义代码是部署在线上的每次加载插件的时候都会请求资源; 而离线是将线上部署的压缩包下载到本地,非版本变更不更新; 还有一种无服务器,手工部署离线的方式,本文不做讨论,感兴趣的同学,自行前往官网阅读文档。

部署服务器的要求:

静态资源服务器就可以,Nginx足可以胜任。

jsplugins.xml:

<jsplugins> <jspluginonline name="Joker" type="et" url="http://127.0.0.1/plugin/joker"/> </jsplugins>

name顾名思义插件的名称,type是插件的宿主类型(et为表格),url插件所在远程目录。

oem.ini文件:

这个文件在WPS的安装目录的cfgs文件夹中,内容类似如下:

[Setup]

Silent=0

LaunchWPS=1

LaunchCenter=1

CreateDesktopShortcut=1

SendInstallSource=1

LANG_ID=1031

BUILD_VERSION=11.1.0.10314

Industry=

PipeNumber=12012.2019

SourceDir=oeminfo

[feature]

xn3QfP-XIpyKSU9I2xbCubad10=hn3QfP-XIpyk99gTmjC7T6IF10

[Support]

JsApiPlugin=true

JsApiShowWebDebugger=true

[Server]

JSPluginsServer=http://127.0.0.1/plugin/

注意JSPluginsServer所配置的远程目录不是插件所在目录,而是jsplugins.xml文件所在目录。

四、结语

本文浅尝辄止地谈及了JavaScript开发WPS加载项的一些常用操作,希望对有此方面需求的同学有所帮助,欢迎大家转发、评论