📔 金山办公产品帮助中心

WPS找到WPS加载项的三种方式

文档由 黄泺璇 于 2022-09-27 21:59 创建,由 黄泺璇 于 2022-10-13 09:21 更新
文档标签:
文档分类:
467

由于加载项中可以对事件和WPS自身的按钮做控制,如果同个组件有多个加载项时,则可能出现WPS加载项冲突,对按钮或者事件的控制无法达到预期,所以只推荐使用三种模式中的其中一种,根据不同的使用场景,使用不同的模式。

publish模式

如何配置

通过sdk中提供的卸载和安装方法,在OA系统页面加载时,调用接口自动生成publish.xml到jsaddons目录,实现原理是先去卸载客户本地publish.xml中所有的WPS加载项,然后只安装OA配置的WPS加载项。具体请参考publish自动安装

适用场景

  • 单个OA系统

如果是多个业务系统的情况,那么在加载项卸载安装完成后,需要重启WPS客户端,新安装的加载项才会加载成功

jsplugins.xml模式

如何配置

通过WPS每次启动都会去读取配置文件oem.ini的特性,在配置文件中配置:

[Support]
#启用jsplugins.xml模式
JsApiPlugin=true
[Server]
#去哪找jsplugins.xml文件
JSPluginsServer=jsplugins.xml文件地址

实际环境中,不可能让每一个客户都去手动修改该配置文件。如果使用这种模式,那么就需要联系对应项目的金山项目经理,将这两个配置打包到WPS安装包中,客户只需要安装新的WPS安装包,即可使用配置的WPS加载项。

适用场景

  • 没有OA系统,将WPS加载项作为WPS功能扩展插件来使用
  • jsplugins.xml地址不会变动,因为每变动一次,都需要重新打包和重新安装WPS客户端
  • 只有一个加载项来源,因为不支持配置多个JSPluginsServer地址

jsplugins.xml动态传递模式

如何配置

无需配置oem.ini,在OA唤起WPS的方法WpsInvoke.InvokeAsHttp中传递第七个参数jsPluginsXml,传递为jsplugins.xml的服务端地址,例如:

多进程

//多进程唤起方式
var wpsClient=new WpsClient("wps")//新建一个WPS文字进程的对象。表格:et,演示:wpp
wpsClient.jsPluginsXml="http://127.0.0.1/jsplugin.xml";//指定jsplugons.xml
     /**
         * 
         * @param {string} name              加载项名称
         * @param {string} func              要调用的加载项中的函数行
         * @param {string} param             在加载项中执行函数func要传递的数据
         * @param {function({int, string})} callBack        回调函数,status = 0 表示成功,失败请查看message信息
         * @param {bool} showToFront         设置wps是否显示到前面来
         * @param {*} timeout       等待wps客户端启动的超时时间,单位为ms
         * @param {*} startparam    传递给wps客户端的启动参数
         * @return {string}                  "Failed to send message to WPS." 发送消息失败,客户端已关闭;
         *                                   "WPS Addon is not response." 加载项阻塞,函数执行失败
         */
 
wpsClient.InvokeAsHttp("WpsOAAssist","dispatcher",{},function(data){//多进程方式唤起
    console.log(data)
})

单进程

//单进程唤起方式
/**
     * @param {*} clientType    加载项类型, wps / wpp / et
     * @param {*} name          加载项名称
     * @param {*} func          客户端加载项要执行的方法
     * @param {*} param         客户端加载项执行方法的参数
     * @param {*} callBack      回调函数
     * @param {*} showToFront   设置客户端是否显示到前面
     * @param {*} jsPluginsXml  设置加载项路径
     * @param {*} silentMode    是否是静默启动
     * @param {*} timeout       等待wps客户端启动的超时时间,单位为ms
     * @param {*} startparam    传递给wps客户端的启动参数
     */
WpsInvoke.InvokeAsHttp("wps", "WpsOAAssist","dispatcher",{},function(data){//多进程方式唤起
    console.log(data)
},undefined,"http://127.0.0.1/jsplugin.xml")

适用场景

  • 多个业务系统

一般配合着多进程一起使用,为每一个业务系统单独开一个WPS进程,保证各个业务系统之间的WPS加载项互不影响。