📔 金山办公产品帮助中心

关闭文档后,客户端停留在首页,没有关闭客户端

文档由 任财应 于 2022-09-27 23:15 创建,由 黄泺璇 于 2022-11-22 08:39 更新
文档标签:
文档分类:
45

场景

OA集成WPS加载项时,点击客户端的关闭后,文档有做关闭,但是WPS客户端停留在首页

原因

因为OA代码中监听了文档关闭事件(DocumentBeforeClose),并在这个事件中取消了本次关闭,同时也取消了客户端的关闭(wps.ApiEvent.Cancel=true).执行完OA的逻辑后,OA只调用了文档的关闭(doc.Close(0)),并未执行客户端的关闭。

解决方案

在文档关闭方法后(doc.Close(0))的下一句加上以下方法,进行文档关闭:
demo的common.js文件中的closeWpsIfNoDocument函数用以下方法替换一下


/**
 * 判断WPS中的文件个数是否为0,若为0则关闭WPS函数
 * @param {*} name
 */
function closeWpsIfNoDocument() {
    var wpsApp = wps.Application;
    var docs = wpsApp.Documents;//文字
    //var docs = wpsApp.Workbooks;//表格
    //var docs = wpsApp.Presentations;//演示
    if (!docs || docs.Count == 0) {
        wps.ApiEvent.Cancel = true;
        //根据业务可以选择是否退出进程 wpsApp.Quit();该函数必须加延迟,因为它的后面可能会有其他的OA代码逻辑并未执行完成
        setTimeout(function(){
            wpsApp.Quit();
        },500)//若仍未关闭wps客户端,可以增加延迟执行的毫秒数,如:设置为3000毫秒
    }
}