金山WPS客户端JSAPI加载项集成文档技术平台

推荐使用WPS2019专业版,版本号为v11.8.2.10255。Windows仅支持10255及其以上专业版。注意:最好使用10255版本,其他版本未过测试。你可以打开WPS,点击右上角设置图标,在关于WPS后面可以看到当前软件的版本号。

使用WPS加载项最重要一点是:保证本机已安装WPS专业版,并且对版本有严格要求,只有从金山供应商购买的WPS并且由供应商提供的WPS安装程序才能使用加载项。

所有个人从金山官网下载的WPS均不支持加载项。

进入后台管理后,选择点击"系统参数设置":

在"正文类型"中选择"Word正文",并确定继续:

首次访问,或者重启电脑,均需要启动服务(用于唤醒wps进程):

点击后,可能浏览器会弹出申请打开链接的弹窗(这是浏览器访问金山接口的安全机制控制),此时可勾选复选框后,单击红框中的按钮即可:

此时可能会弹出如下窗口,这时直接点击启动服务即可(根据电脑性能等影响,可能wps接口无法立即给出响应导致),重新再启动,如果多次无法启动,则需要判断当前wps版本是否支持加载项:

然后点击重新加载,刷新页面:

然后重新选择在"正文类型"中选择"Word正文",并确定继续,此时可以成功打开WPS服务。

此时点击"Word正文",可以直接弹出WPS服务:

进入WPS文字后,点击右上角退出后,会回到浏览器界面,此时点击窗口中显示的打开正文,仍然可以重新进入:

最后就可以使用WPS加载项编辑内容了:

开发或者分析问题时,可能需要开启调试模式。

【Windows环境】

进入安装目录,找到oem.ini文件,可能在WPSOffice>11.8.2.10255>office6>cfgs目录下面:

然后【support】增加配置JsApiShowWebDebugger=true:

【信创环境】

卸载:sudodpkg-rxxx

安装:sudodpkg-ixxx

sudochmod-R777/opt/apps/cn.wps.wps-office-pro/files/

2、修改oem.ini:

uos环境:龙芯

cd/opt/apps/cn.wps.wps-office-pro/files/kingsoft/wps-office/office6/cfgs

linux:银河麒麟

cd/opt/kingsoft/wps-office/office6/cfgs

开始修改:

vimoem.ini

JsApiShowWebDebugger=true

3、重启:

cd/opt/apps/cn.wps.wps-office-pro/files/bin

国产机修改后重启:终端执行quickstartofficerestart

查找publish.xml文件

windows:我的电脑地址栏中输入:%appdata%\kingsoft\wps\jsaddons

linux:我的电脑地址栏中输入:~/.local/share/Kingsoft/wps/jsaddons

WPS打开文档后,鼠标点到页签,按alt+F12:

按了之后会弹出类似浏览器控制台(该控制台主要可调试WPS内部触发的加载项逻辑,例如OA触发打开文件)

"任务窗格"的点击事件需要跟踪,把鼠标放在任务窗格,点ALT+F12

(该控制台主要可调试"任务窗格"点击后的逻辑,例如点击左侧的"保存"按钮)

OA触发wps客户端执行业务代码的逻辑在wps.js中,通过调用_WpsInvoke方法来调用wps_sdk.js(金山提供的)来和wps客户端通讯。

wps客户端的代码在apps-common工程,代码分别为表格和和文字的,代码逻辑是一模一样,只是表格的语法不一样,因此只要看了文字的功能,表格也就明白:

打开在线文档,oa浏览器触发wps客户端,在wps的func_oastarter.js文件的dispatcher()方法,这个方法是web页面调用WPS的方法入口:

而在这里面,定义了如何打开在线文档的方法,涉及到了位于wps.js文件里面的函数OnlineEditDoc():

OA浏览器触发wps的最后代码位于wps.js,打开文档方法OnlineEditDoc():

该函数的主要功能实际上是修改参数以及调用_WpsInvoke()函数,参数的修改对象是一个全局WPS上下文类型,该对象指定了很多属性来表示WPS文件的各种状态:

OnlineEditDoc()修改了3个属性(业务中会根据他们来进行些控制,这个不是最主要的,分析时可全局搜索),分别是:

\"renderWpsFlag\":wps渲染标记\"wpsCloseFlag\":wps打开文档标记\"changeFlag\":是否调用模板标记OnlineEditDoc()根据业务情况和参数传值来修改这些属性的的值:

只要需要打开WPS,必然需要经过_WpsInvoke方法,这是调用wps客户端的最后一个业务方法:

改方法会调用wps_sdk.js(金山提供)的方法和wps客户端通讯,这个文件是金山给我们提供的,我们不做任何修改,如果需要修改,则和master反馈。

1、消息监听

消息通知有消息监听的形式,比如WPS文字监听函数,通过传入参数的信息,来设定文档的属性,实现一个信息的传递功能。例如WPS客户端对文档保存、修改、关闭等操作,需要告诉oa,则通过改消息机制来实现:

表格信息监听的方式如出一辙,也是通过传递的参数信息来判断和修改对象的属性值:

2、心跳机制

wps和oa服务器通讯,目前我们使用的是类似一个心跳的机制,下边是它时序图:

当需要使用加载项时,OA页面会触发生成

3、保存文档

进入WPS,点击保存,触发点击事件:

跟踪代码,此时会调用方法OnAction(),最终相应的执行OnBtnSaveToServer()方法:

继续跟踪OnBtnSaveToServer()方法,进入func_tabcontrol.js文件的OnBtnSaveToServer()方法:

进入核心代码行uploadToServer()方法的调用,然后在这里奇怪的是,我进入该行代码的执行,但是显现的并不是我想看到的那个函数(可能是一些浏览器显示乱跳的问题,我们可以使用debugger来强制使用断点进入):

进入后调用的是这一行,也就是调用btnShowDoc()函数的最末行,而不是uploadToServer()的第一行:

随后执行函数onAutoUploadSuccess(),执行完该函数过后,:

4、保存文档回调

保存文档回调的关键代码是对象WpsConstent的saveFileCallBack()方法:

文件wps.js

①判断是否有专业签章函数

fileId:文件Id

ClientType:客户端类型(wps或et),若不传将被设置为wps

返回值为boolean

②函数_WpsInvoke

funcs:调用的函数名,JSON格式

OAAssistType:客户端类型,若不传将被设置为wps

调用wpsFunc去做判断,其中info的值为{"HasSpecialSignature":fileId...}

判断结果将传入回调函数的参数result

文件func_oastarter.js

①判断是否有金格专业签章

判断doc中sheet的每一项的shape的每一项,有三种情况均可确定有金格专业签章,满足任意一项均可returntrue。

①文件wps.js

传入funcs的函数名为"HasPicSignature"

与专业签章逻辑一致

②文件func_oastarter.js

含义:OA主动发起请求到wps客户端(wps加载项)中请求文档是否处于打开状态。

1、OA主动发起请求

apps-common\src\main\webapp\common\office\js\wps.js

2、wps客户端接收

apps-common\src\main\webapp\common\wpsOfficeAssist\WpsOAAssist\js\common\func_oastarter.js

3、根据本地是否存在对应的文件id判断是否文档已经打开

含义:OA主动发起请求到wps客户端(wps加载项)中进行在线套红处理。

1、OA主动发起

3、wps客户端处理

apps-common\src\main\webapp\common\wpsOfficeAssist\WpsOAAssist\js\common\func_docProcess.js

先判断文档是否存在,后执行判断权限是否允许,执行套红操作。

含义:OA主动发起请求到wps客户端(wps加载项)中进行获取公文域或书签数量,参数为文件id。

2、wps客户端接收处理

3、根据文件id处理文件

含义:OA主动发起请求到wps客户端(wps加载项)中进行获取书签名。

1、OA发起

3、逻辑处理

含义:OA主动发起请求到wps客户端(wps加载项)中进行删除书签操作。

2、wps客户端处理

更新权限等操作会调用该函数

paramObj:参数对象

直接调用_WpsInvoke函数

无需设置ClientType

需要设置ClientType

调用addParamsToDoc函数并刷新权限

文件func_docProcess.js

具体的合并两个params的操作

②文件func_docProcess.js

调用_WpsInvoke

①获取国际化信息

文件baseOffice.js

②从oa缓存中获取国际化信息

含义:在打开的wps客户端的当前打开文档中调起打印页面设置框。进行文档的打印实现。

1、入口函数

wpsOfficeAssist\wpsOfficeAssist\WpsOAAssist\taskpane.html

2、执行打印逻辑

a.获取当前激活文档:wpsApp.ActiveDocument

b.延时加载打印逻辑:wpsApp.CommandBars.ExecuteMso("FilePrint");

wpsOfficeAssist\wpsOfficeAssist\WpsOAAssist\js\common.js

含义:根据OA系统传递的数据进行任务窗格功能性的动态渲染与Ribbon按钮(wps上层默认功能按钮)是否可用,以及默认功能重写。

初始化菜单的参数:

params:OA参数

根据OA参数更新菜单权限:

调起加载taskpane.html

渲染任务窗格:

b.getEnabled:是否生效。

c.onAction:自定义执行逻辑。

wpsOfficeAssist\wpsOfficeAssist\WpsOAAssist\js\common\func_tabcontrol.js

含义:简单说对历史编辑做一个展示,并提供选择权限进行一个历史编辑版本的信息展示。

1、执行逻辑

在任务窗格有花脸功能的情况下,点击对应花脸按钮,执行打开弹框逻辑,获取花脸数据,展示在弹框区域中,以进度项方式展示,点击对应任务项,获取对应任务项数据,切换并渲染新页面。打开只读文件。最后关闭弹框,关闭花脸模式。

2、弹框逻辑

a.入口函数

花脸此处使用了vue.js的展示和执行函数方式。

3、展示花脸弹框信息

执行函数:listHualian

发起ajax请求,获取花脸信息。

4、点击花脸对应任务项功能

a.执行函数:open

b.参数:item每一个花脸任务项信息。

渲染新的界面并切换:

含义:对文档的历史编辑痕迹进行一个清楚,然后保存全新的文档到服务器中。

WpsOAAssist\js\common\func_tabcontrol.js

2、清稿后需要保存到服务器中,并刷新花脸

①文件baseOffice.js

②文件handWrite_n.js

每次重启电脑都会提示启动服务

因为重启电脑,wps进程就会退出。下次使用必定会启动服务来唤起wps,这个我们已经找过金山技术,他们无法做到自动启动,据说是系统安全有限制,无法实现重启电脑来自动启动wps。

无法启动服务或者wps无法唤起

注意:请务必确认,当前WPS版本是专业版,window是10255,信创是10290。(大于该版本的未全面测试)

1:文件地址栏输入%AppData%回车,进入如下地址,看看加载项的配置路径文件

如果有其他的xml,则删掉,只保留publish.xml。

2:打开publish.xml,只保留自己访问OA的ip地址的配置,有其他的,则全部删掉。

THE END
1.如何创建一个用户友好的在线表单?通过遵循上述步骤和建议,您可以创建一个既美观又实用的用户友好在线表单,从而提升用户的填写体验和表单的完成率。 AI办公助手:WPS灵犀 如果本文未能解决您的问题,或者您在办公领域有更多疑问,我们推荐您尝试WPS灵犀—— 一款强大的人工智能办公助手。 WPS灵犀具备AI搜索、读文档、快速创作、生成PPT、长文写作、网页摘要https://www.kdocs.cn/article/0722070908.html
2.wps在线预览接口金山文档在线编辑快速接入回调接口开发完成之后需要部署到线上,并且需要在https://open.wps.cn 的对应金山文档在线编辑服务商修改数据回调接口的url。 4.生成带签名的访问url 根据提供的appid和secretkey和对接模块需要透传的参数,按要求生成签名,然后生成一个可以在线编辑文档的url,可以通过此url访问金山文档在线编辑服务。 https://blog.csdn.net/weixin_39657300/article/details/111854260
3.金山文档小程序怎么签字?金山文档是一款可多人实时协作编辑的在线文档,修改后自动保存,无需转换格式,告别反复传文件,支持在网页中在线编辑,可下载电脑版客户端、下载APP使用。 操作方法 1、进入金山文档 打开微信,点击搜索符号输入金山关键字,点击弹出的小程序金山文档。 2、上传文件https://www.idctalk.com/7618.html
4.金山文档“签名接龙种梭”进行中协作让荒漠不再蔓延3月12日,金山办公旗下协作办公平台金山文档发起“签名接龙种梭”公益活动,支持北京市企业家环保基金会(SEE基金会)“一亿棵梭梭”项目,在内蒙古阿拉善盟种下1万棵梭梭。不少参与活动的网友纷纷表达好奇:为何用金山文档在线上一次简单的“签名”,就能在内蒙古阿拉善种下梭梭? https://www.donews.com/news/detail/4/3140693.html
5.教你如何在金山在线文档中添加备注金山在线文档是一款功能强大的在线文档编辑工具,不仅可以协助你完成各种文档编辑需求,还提供了许多实用的功能,如添加备注。如果你想在文档中添加一些注释或提醒,金山在线文档的备注功能可以满足你的需求。本文将带你逐步了解在金山在线文档中如何添加备注。 方法一:使用批注功能 https://bbs.wps.cn/cms/5U5ZDQUC.html
6.对方用微信文档发过来盖完章的合同直接让我用金山文档在上边签名您好,除另行约定生效条件外,合同一般自双方签订之日起生效,若存在纠纷的,可以到法院起诉,主张自己的https://www.64365.com/ask/13680047.aspx
7.python登录金山在线文档金山文档在线小程序python登录金山在线文档 金山文档在线小程序 最近需要在微信小程序中用到在线支付功能,于是看了一下官方的文档,发现要在小程序里实现微信支付还是很方便的,如果你以前开发过服务号下的微信支付,那么你会发现其实小程序里的微信支付和服务号里的开发过程如出一辙,下面我就具体说一下小程序里微信支付的开发流程和注意https://blog.51cto.com/u_16213640/11868100
8.金山文档怎么手写签名?电脑版金山文档插入手写签名的方法并且需要在表格中插入自己手写的签名,那么我们可以直接在表格编辑页面中,通过签名功能进行设置即可,在表格工具栏中有一个签名的功能,打开该功能我们就可以通过鼠标在签名的框中进行编写出自己要使用到的名字,之后插入到表格单元格中就好了,下方是关于如何使用金山文档插入手写签名的具体操作方法,如果你需要的情况下可以http://m.xz7.com/article/93948.html
9.文档如何在线签字格式转换 文档安全&数据恢复 文件打开方式 办公技巧 文档如何在线签字2022-04-29 来源:金山毒霸文档/文件服务作者:办公技巧本文主要介绍腾讯TIM如何创建在线文档,相信很多小伙伴也同样期待看到关于创建在线文档的方法吧,一起来看吧! 1)我们先打开软件点击右下角的【人形】,接着再点击【在线文档】。(https://www.ijinshan.com/fileservice/paper_20220429172253.shtml
10.金山文档在线编辑签名生成说明//签名方法 import org.apache.commons.codec.digest.HmacUtils; import java.util.*; import static org.apache.commons.codec.binary.Base64.encodeBase64String; public class Main { private static String getSignature(Map<String, String> params, String appId, String appSecret) { List<String> keys=new https://www.bookstack.cn/read/wps-doc/f8526c79e912bcbb.md
11.什么是金山文档轻维表?如何根据日期自动提醒表格中的内容?如何根据日期自动提醒表格中的内容? 什么是金山文档轻维表? 金山文档作为老牌文档应用,推出了新的功能轻维表,是一款新式在线协作表格,具有传统表格强大的内核发动机,是专为多人协作场景设计的增强版表格软件,可以支持快速搭建轻量应用。 由于金山文档轻维表是一款以表格为基础,同时引入了数据库理念的「全新协作效率https://cloud.tencent.com/developer/article/2079441
12.金山PDFforLinux专业版发布PDF编辑格式转换电子签名等重磅符合最新ISO 32000-2中关于PDF的国际行业标准,与其他PDF软件如Adobe等兼容,兼容井支持识别其他软件添加的水印、支持打开和显示第三方添加的数字签名及数字证书等;此外,金山PDF for Linux专业版还支持行业通用的PDF标准加密方法,可添加打开权限、编辑权限,密码强度最大支持128位,并支持对文档全文添加水印效果,保护文档https://i.ifeng.com/c/8AFPlOT5CvA
13.金山词霸爱词霸英语翻译器为广大英文学习爱好者提供即时的在线翻译、在线词典、英文写作校对、汉译英、英译汉、图片、文档翻译、汉语查词等服务,金山词霸在线查词翻译频道致力于提供优质的在线翻译、查词服务https://www.iciba.com/
14.金山文档签字怎么手写?在弹出的手写签名界面中,可以使用手指或触控笔进行签名。根据需要调整笔触颜色、线条粗细等设置。https://www.caochai.com/question-710804.html
15.WPS表单:金山文档旗下在线信息收集工具新媒派WPS表单是金山文档旗下一款便捷的在线信息收集工具,免费创建问卷调查、信息统计、考试测评、投票、接龙等应用,覆盖多种题型、支持定位、文件收集、图片收集等功能,帮助用户轻松在线收集、汇总处理数据,一站式高效提升工作效率。https://pidoutv.com/sites/15895.html