var pluginsMode = location.search.split("=")[1]; //截取url中的参数值 var pluginType = WpsInvoke.ClientType.wps; //加载项类型wps,et,wpp var pluginName = "WpsOAAssist"; //加载项名称 var wpsClient = new WpsClient(pluginType); //初始化一个多进程对象,多进程时才需要 var clientStr = pluginName + pluginType + "ClientId"; //单进程封装开始 /** * 此方法是根据wps_sdk.js做的调用方法封装 * 可参照此定义 * @param {*} funcs 这是在WPS加载项内部定义的方法,采用JSON格式(先方法名,再参数) * @param {*} front 控制着通过页面执行WPS加载项方法,WPS的界面是否在执行时在前台显示 * @param {*} jsPluginsXml 指定一个新的WPS加载项配置文件的地址,动态传递jsplugins.xml模式,例如:http://127.0.0.1:3888/jsplugins.xml * @param {*} isSilent 隐藏打开WPS,如果需要隐藏,那么需要传递front参数为false */ function _WpsInvoke(funcs, front, jsPluginsXml, isSilent) { var info = {}; info.funcs = funcs; if (isSilent) { //隐藏启动时,front必须为false front = false; } /** * 下面函数为调起WPS,并且执行加载项WpsOAAssist中的函数dispatcher,该函数的参数为业务系统传递过去的info */ if (pluginsMode != 2) { //单进程 singleInvoke(info, front, jsPluginsXml, isSilent); } else { //多进程 multInvoke(info, front, jsPluginsXml, isSilent); } } //单进程 function singleInvoke(info, front, jsPluginsXml, isSilent) { WpsInvoke.InvokeAsHttp( pluginType, // 组件类型 pluginName, // 插件名,与wps客户端加载的加载的插件名对应 "dispatcher", // 插件方法入口,与wps客户端加载的加载的插件代码对应,详细见插件代码 info, // 传递给插件的数据 function (result) { // 调用回调,status为0为成功,其他是错误 if (result.status) { if (result.status == 100) { WpsInvoke.AuthHttpesCert( '请在稍后打开的网页中,点击"高级" => "继续前往",完成授权。' ); return; } alert(result.message); } else { console.log(result.response); showresult(result.response); } }, front, jsPluginsXml, isSilent ); /** * 接受WPS加载项发送的消息 * 接收消息:WpsInvoke.RegWebNotify(type,name,callback) * WPS客户端返回消息: wps.OAAssist.WebNotify(message) * @param {*} type 加载项对应的插件类型 * @param {*} name 加载项对应的名字 * @param {func} callback 接收到WPS客户端的消息后的回调函数,参数为接受到的数据 */ WpsInvoke.RegWebNotify(pluginType, pluginName, handleOaMessage); } //多进程 function multInvoke(info, front, jsPluginsXml, isSilent) { wpsClient.jsPluginsXml = jsPluginsXml ? jsPluginsXml : "https://127.0.0.1:3888/jsplugins.xml"; if (localStorage.getItem(clientStr)) { wpsClient.clientId = localStorage.getItem(clientStr); } if (isSilent) { wpsClient.StartWpsInSilentMode(pluginName, function () { //隐藏启动后的回调函数 mult(info, front); }); } else { mult(info, front); } wpsClient.onMessage = handleOaMessage; } //多进程二次封装 function mult(info, front) { wpsClient.InvokeAsHttp( pluginName, // 插件名,与wps客户端加载的加载的插件名对应 "dispatcher", // 插件方法入口,与wps客户端加载的加载的插件代码对应,详细见插件代码 info, // 传递给插件的数据 function (result) { // 调用回调,status为0为成功,其他是错误 if (wpsClient.clientId) { localStorage.setItem(clientStr, wpsClient.clientId); } if (result.status !== 0) { console.log(result); if (result.message == '{"data": "Failed to send message to WPS."}') { wpsClient.IsClientRunning(function (status) { console.log(status); if (status.response == "Client is running.") alert( "任务发送失败,WPS 正在执行其他任务,请前往WPS完成当前任务" ); else { wpsClient.clientId = ""; wpsClient.notifyRegsitered = false; localStorage.setItem(clientStr, ""); mult(info); } }); return; } else if (result.status == 100) { // WpsInvoke.AuthHttpesCert('请在稍后打开的网页中,点击"高级" => "继续前往",完成授权。') return; } alert(result.message); } else { console.log(result.response); } }, front ); } function handleOaMessage(data) { console.log(data); } function handleOaFunc1(message) { alert("我是函数handleOaFunc1,我接收到的参数是:" + message); } function handleOaFunc2(message) { alert("我是函数handleOaFunc2,我接收到的参数是:" + message); var span = window.parent.document.getElementById("webnotifyspan"); span.innerHTML = message; } /** * 处理WPS加载项的方法返回值 * * @param {*} resultData */ function showresult(resultData) { let json = eval("(" + resultData + ")"); switch (json.message) { case "GetDocStatus": { let docstatus = json.docstatus; if (typeof docstatus != "undefined") { let str = "文档保存状态:" + docstatus.saved + "\n文档字数:" + docstatus.words + "\n文档页数:" + docstatus.pages; alert(str); } } } } /** * 这是页面中针对代码显示的变量定义,开发者无需关心 */ var _wps = {}; // 此处往下,都是对于前端页面如何调用WPS加载项方法的样例,开发者请参考 function newDoc() { console.log("sasaa"); _WpsInvoke( [ { NewDoc: {}, }, ], true, "http://127.0.0.1:8080/iestart/jsplugins.xml" ); // NewDoc方法对应于OA助手dispatcher支持的方法名 } _wps["newDoc"] = { action: newDoc, code: _WpsInvoke.toString() + "\n\n" + newDoc.toString(), detail: "\n\ 说明:\n\ 点击按钮,打开WPS文字后,新建一个空白doc文档\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行插件中的js函数NewDoc,新建一个空白doc\n\ funcs参数说明:\n\ NewDoc方法对应于OA助手dispatcher支持的方法名\n\ ", }; function GetDemoPath(fileName) { var url = document.location.host; return document.location.protocol + "//" + url + "/file/" + fileName; } function GetUploadPath() { var url = document.location.host; return document.location.protocol + "//" + url + "/Upload"; } function GetDemoPngPath() { var url = document.location.toString(); url = decodeURI(url); if (url.indexOf("/") != -1) { url = url.substring(0, url.lastIndexOf("/")); } if (url.length !== 0) url = url.concat("/WPS.png"); if (!String.prototype.startsWith) { String.prototype.startsWith = function (searchString, position) { position = position || 0; return this.indexOf(searchString, position) === position; }; } if (url.startsWith("file:///")) url = url.substr("file:///".length); return url; } function openDoc() { var filePath = prompt( "请输入打开文件路径(本地或是url):", GetDemoPath("样章.docx") ); var uploadPath = prompt("请输入文档上传接口:", GetUploadPath()); var uploadFieldName = prompt( "请输入文档上传到业务系统时自定义字段:", "自定义字段" ); var backupPath = prompt("请输入文档备份路径:"); _WpsInvoke([ { OpenDoc: { uploadPath: uploadPath, // 保存文档上传接口 fileName: filePath, uploadFieldName: uploadFieldName, picPath: GetDemoPngPath(), copyUrl: backupPath, userName: "东方不败", }, }, ]); // OpenDoc方法对应于OA助手dispatcher支持的方法名 } _wps["openDoc"] = { action: openDoc, code: _WpsInvoke.toString() + "\n\n" + openDoc.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入要打开的文档路径,输入文档上传接口,如果传的不是有效的服务端地址,将无法使用保存上传功能。\n\ 打开WPS文字后,将根据文档路径下载并打开对应的文档,保存将自动上传指定服务器地址\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OpenDoc方法对应于OA助手dispatcher支持的方法名\n\ uploadPath 保存文档上传接口\n\ fileName 打开的文档路径\n\ uploadFieldName 文档上传到业务系统时自定义字段\n\ picPath 插入图片的路径\n\ copyUrl 备份的服务器路径\n\ userName 传给wps要显示的OA用户名\n\ ", }; function onlineEditDoc() { var filePath = prompt( "请输入打开文件路径(本地或是url):", GetDemoPath("样章.docx") ); var uploadPath = prompt("请输入文档上传接口:", GetUploadPath()); var uploadFieldName = prompt( "请输入文档上传到业务系统时自定义字段:", "自定义字段" ); _WpsInvoke( [ { OnlineEditDoc: { uploadPath: uploadPath, // 保存文档上传接口 fileName: filePath, uploadFieldName: uploadFieldName, buttonGroups: "btnSaveAsFile,btnImportDoc,btnPageSetup,btnInsertDate,btnSelectBookmark", //屏蔽功能按钮 userName: "东方不败", }, }, ], true ); // onlineEditDoc方法对应于OA助手dispatcher支持的方法名 } _wps["onlineEditDoc"] = { action: onlineEditDoc, code: _WpsInvoke.toString() + "\n\n" + onlineEditDoc.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入要打开的文档路径,输入文档上传接口,如果传的不是有效的服务端地址,将无法使用保存上传功能。\n\ 打开WPS文字后,将根据文档路径在线打开对应的文档,保存将自动上传指定服务器地址\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ onlineEditDoc方法对应于OA助手dispatcher支持的方法名\n\ uploadPath 保存文档上传接口\n\ fileName 打开的文档路径\n\ uploadFieldName 文档上传到业务系统时自定义字段\n\ buttonGroups 屏蔽的OA助手功能按钮\n\ userName 传给wps要显示的OA用户名\n\ ", }; function openRevision() { var filePath = prompt( "请输入打开文件路径(本地或是url):", GetDemoPath("样章.docx") ); var uploadPath = prompt("请输入文档上传接口:"); _WpsInvoke([ { OpenDoc: { uploadPath: uploadPath, // 保存文档上传接口 fileName: filePath, userName: "王五", //用户名 revisionCtrl: { bOpenRevision: true, bShowRevision: true, }, }, }, ]); } _wps["openRevision"] = { action: openRevision, code: _WpsInvoke.toString() + "\n\n" + openRevision.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入参数后,打开WPS文字后,打开指定文档,并打开修订功能,并显示修订\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OpenDoc方法对应于OA助手dispatcher支持的方法名\n\ userName 用户名,设置当前编辑用户名\n\ fileName 打开的文档路径\n\ revisionCtrl 修订功能控制参数\n\ ", }; function closeRevision() { var filePath = prompt( "请输入打开文件路径(本地或是url):", GetDemoPath("样章.docx") ); var uploadPath = prompt("请输入文档上传接口:"); _WpsInvoke([ { OpenDoc: { uploadPath: uploadPath, // 保存文档上传接口 fileName: filePath, userName: "王五", //用户名 revisionCtrl: { bOpenRevision: false, bShowRevision: false, }, }, }, ]); } _wps["closeRevision"] = { action: closeRevision, code: _WpsInvoke.toString() + "\n\n" + closeRevision.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入参数后,打开WPS文字后,打开指定文档,并关闭修订功能\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OpenDoc方法对应于OA助手dispatcher支持的方法名\n\ userName 用户名,设置当前编辑用户名\n\ fileName 打开的文档路径\n\ revisionCtrl 修订功能控制参数\n\ ", }; function protectOpen() { var filePath = prompt( "请输入打开文件路径(本地或是url):", GetDemoPath("样章.docx") ); var uploadPath = prompt("请输入文档上传接口:"); _WpsInvoke([ { OpenDoc: { uploadPath: uploadPath, // 保存文档上传接口 fileName: filePath, openType: { //文档打开方式 // 文档保护类型,-1:不启用保护模式,0:只允许对现有内容进行修订, // 1:只允许添加批注,2:只允许修改窗体域(禁止拷贝功能),3:只读 protectType: 3, password: "123456", }, }, }, ]); } _wps["protectOpen"] = { action: protectOpen, code: _WpsInvoke.toString() + "\n\n" + protectOpen.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入参数后,打开WPS文字后,打开使用保护模式指定文档\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OpenDoc方法对应于OA助手dispatcher支持的方法名\n\ uploadPath 保存文档上传接口\n\ fileName 打开的文档路径\n\ openType 文档打开方式控制参数 protectType:1:不启用保护模式,0:只允许对现有内容进行修订,\n\ \t\t1:只允许添加批注,2:只允许修改窗体域(禁止拷贝功能),3:只读 password为密码\n\ ", }; function openWithPassWd() { var filePath = prompt("请输入打开文件路径(本地或是url):"); var docPassword = prompt("请输入文档打开密码:"); var uploadPath = prompt("请输入文档上传接口:"); _WpsInvoke([ { OpenDoc: { uploadPath: uploadPath, // 保存文档上传接口 fileName: filePath, docPassword: { docPassword: docPassword, // 文档密码 }, }, }, ]); } _wps["openWithPassWd"] = { action: openWithPassWd, code: _WpsInvoke.toString() + "\n\n" + openWithPassWd.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入参数后,打开WPS文字后,使用指定密码打开指定加密文档\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OpenDoc方法对应于OA助手dispatcher支持的方法名\n\ uploadPath 保存文档上传接口\n\ fileName 打开的文档路径\n\ docPassword 文档密码\n\ ", }; function insertRedHeader() { var filePath = prompt( "请输入打开文件路径,如果为空则对活动文档套红:", GetDemoPath("样章.docx") ); var templateURL = prompt( "请输入红头模板路径(本地或是url):", GetDemoPath("红头文件.docx") ); if (filePath != "" && filePath != null) { _WpsInvoke([ { OnlineEditDoc: { fileName: filePath, insertFileUrl: templateURL, bkInsertFile: "Content", //红头模板中填充正文的位置书签名 buttonGroups: "btnSaveAsFile,btnImportDoc,btnPageSetup,btnInsertDate,btnSelectBookmark", //屏蔽功能按钮 }, }, ]); } else { _WpsInvoke([ { InsertRedHead: { insertFileUrl: templateURL, bkInsertFile: "Content", //红头模板中填充正文的位置书签名 }, }, ]); } } _wps["insertRedHeader"] = { action: insertRedHeader, code: _WpsInvoke.toString() + "\n\n" + insertRedHeader.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入参数后,打开WPS文字后,打开指定文档,然后使用指定红头模板对该文档进行套红头\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OpenDoc方法对应于OA助手dispatcher支持的方法名\n\ fileName 打开的文档路径\n\ insertFileUrl 指定的红头模板\n\ bkInsertFile 红头模板中正文的位置书签名\n\ InsertRedHead方法对应于OA助手dispatcher支持的方法名\n\ insertFileUrl 指定的红头模板\n\ bkInsertFile 红头模板中正文的位置书签名\n\ ", }; function fillTemplate() { var filePath = prompt( "请输入打开文件路径(本地或是url):", GetDemoPath("样章2.docx") ); var templatePath = prompt( "请输入需要填充的数据的请求地址:", document.location.protocol + "//" + document.location.host + "/getTemplateData" ); _WpsInvoke([ { OpenDoc: { fileName: filePath, templateDataUrl: templatePath, }, }, ]); // OpenDoc方法对应于OA助手dispatcher支持的方法名 } _wps["fillTemplate"] = { action: fillTemplate, code: _WpsInvoke.toString() + "\n\n" + fillTemplate.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入要打开的文档路径,输入文档上传接口,打开WPS文字后,将根据文档路径下载并打开对应的文档,\n\ 并自动从模板服务器获取模板数据并套用到文档中\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OpenDoc方法对应于OA助手dispatcher支持的方法名\n\ fileName 打开的文档路径\n\ templateDataUrl 模板的服务器路径\n\ ", }; function convertDoc() { var filePath = prompt( "请输入打开文件路径(本地或是url):", GetDemoPath("样章.docx") ); var uploadPath = prompt("请输入文档转换后上传接口:", GetUploadPath()); _WpsInvoke([ { OpenDoc: { uploadPath: uploadPath, // 保存文档上传接口 fileName: filePath, suffix: ".pdf", uploadWithAppendPath: "1", //与suffix配置使用,传入标志位即可 }, }, ]); // OpenDoc方法对应于OA助手dispatcher支持的方法名 } _wps["convertDoc"] = { action: convertDoc, code: _WpsInvoke.toString() + "\n\n" + convertDoc.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入要打开的文档路径,输入文档转换后上传接口,如果传的不是有效的服务端地址,将无法使用保存上传功能。\n\ 打开WPS文字后,将根据文档路径下载并打开对应的文档,转换完将自动上传指定服务器地址\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OpenDoc方法对应于OA助手dispatcher支持的方法名\n\ uploadPath 保存文档上传接口\n\ fileName 打开的文档路径\n\ suffix 转换类型\n\ uploadWithAppendPath 保存时一并转换的目标格式\n\ ", }; function taskPaneBookMark() { var filePath = prompt( "请输入打开带书签文件路径(本地或是url):", GetDemoPath("样章.docx") ); _WpsInvoke([ { taskPaneBookMark: { fileName: filePath, userName: "东方不败", }, }, ]); // taskPaneBookMark方法对应于OA助手dispatcher支持的方法名 } _wps["taskPaneBookMark"] = { action: taskPaneBookMark, code: _WpsInvoke.toString() + "\n\n" + taskPaneBookMark.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入要打开的文档路径,文档中的书签将会在OA助手的Taskpane中显示出来。\n\ 点击TaskPane中的书签,会自动跳转到书签所对应的文件中的位置,点击Taskpane按F2键可以看Taskpane中的html源码。\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ taskPaneBookMark 方法对应于OA助手dispatcher支持的方法名\n\ fileName 文档的路径\n\ userName 传给wps要显示的OA用户名\n\ ", }; function exitWPS() { _WpsInvoke( [ { ExitWPS: {}, }, ], true ); } _wps["exitWPS"] = { action: exitWPS, code: _WpsInvoke.toString() + "\n\n" + exitWPS.toString(), detail: "\n\ 说明:\n\ 点击按钮,关闭已打开的WPS\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议通知WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ ExitWPS 方法对应于OA助手dispatcher支持的方法名\n\ ", }; function getDocStatus() { _WpsInvoke( [ { GetDocStatus: {}, }, ], false ); } _wps["getDocStatus"] = { action: getDocStatus, code: _WpsInvoke.toString() + "\n\n" + getDocStatus.toString(), detail: "\n\ 说明:\n\ 点击按钮,获取活动文档的状态\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议通知WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ GetDocStatus 方法对应于OA助手dispatcher支持的方法名\n\ ", }; //----公文写作的相关方法 这些都必须是在有「公文写作」组件的版本中运行 Start-------- /** * 判断当前OS是否是Linux系统 * * @returns */ function checkOSisLinux() { if (detectOS() == "Linux") { return true; } else { alert("此方法仅在WPS Linux特定版本支持"); } } /** * 新建一个使用公文写作打开的公文 * */ function newOfficialDocument() { if (checkOSisLinux()) { _WpsInvoke([ { NewOfficialDocument: { isOfficialDocument: true, }, }, ]); // NewOfficialDocument方法对应于OA助手dispatcher支持的方法名 } } _wps["newOfficialDocument"] = { action: newOfficialDocument, code: _WpsInvoke.toString() + "\n\n" + newOfficialDocument.toString(), detail: "\n\ 说明:\n\ 点击按钮,打开WPS公文写作后,新建一个公文\n\ \n\ 方法使用:\n\ 页面点击按钮, 通过wps客户端协议来启动WPS, 调用oaassist插件, 执行插件中的js函数NewOfficialDocument, 新建一个默认模板的公文 n\ funcs参数说明:\n\ NewOfficialDocument方法对应于OA助手dispatcher支持的方法名 n\ ", }; /** * 打开一个使用公文写作打开的公文 */ function openOfficialDocument() { if (checkOSisLinux()) { var filePath = prompt( "请输入打开文件路径(本地或是url):", GetDemoPath("公文样章.wps") ); var uploadPath = prompt("请输入文档上传接口:", GetUploadPath()); var uploadFieldName = prompt( "请输入文档上传到业务系统时自定义字段:", "自定义字段" ); var backupPath = prompt("请输入文档备份路径:"); _WpsInvoke([ { OpenDoc: { uploadPath: uploadPath, // 保存文档上传接口 fileName: filePath, uploadFieldName: uploadFieldName, picPath: GetDemoPngPath(), copyUrl: backupPath, userName: "东方不败", }, }, ]); // OpenDoc方法对应于OA助手dispatcher支持的方法名 } } _wps["openOfficialDocument"] = { action: openOfficialDocument, code: _WpsInvoke.toString() + "\n\n" + openOfficialDocument.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入要打开的文档路径,输入文档上传接口,如果传的不是有效的服务端地址,将无法使用保存上传功能。\n\ 打开WPS文字后,将根据文档路径下载并打开对应的文档,保存将自动上传指定服务器地址\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OpenDoc方法对应于OA助手dispatcher支持的方法名\n\ uploadPath 保存文档上传接口\n\ fileName 打开的文档路径\n\ uploadFieldName 文档上传到业务系统时自定义字段\n\ picPath 插入图片的路径\n\ copyUrl 备份的服务器路径\n\ userName 传给wps要显示的OA用户名\n\ ", }; /** * 在线不落地打开一个使用公文写作打开的公文 */ function onlineEditOfficialDocument() { if (checkOSisLinux()) { var filePath = prompt( "请输入打开文件路径(本地或是url):", GetDemoPath("公文样章.wps") ); var uploadPath = prompt("请输入文档上传接口:", GetUploadPath()); var uploadFieldName = prompt( "请输入文档上传到业务系统时自定义字段:", "自定义字段" ); _WpsInvoke([ { OnlineEditDoc: { uploadPath: uploadPath, // 保存文档上传接口 fileName: filePath, uploadFieldName: uploadFieldName, buttonGroups: "btnSaveAsFile,btnImportDoc,btnPageSetup,btnInsertDate,btnSelectBookmark", //屏蔽功能按钮 userName: "东方不败", }, }, ]); // onlineEditDoc方法对应于OA助手dispatcher支持的方法名 } } _wps["onlineEditOfficialDocument"] = { action: onlineEditOfficialDocument, code: _WpsInvoke.toString() + "\n\n" + onlineEditOfficialDocument.toString(), detail: "\n\ 说明:\n\ 点击按钮,输入要打开的文档路径,输入文档上传接口,如果传的不是有效的服务端地址,将无法使用保存上传功能。\n\ 打开WPS文字后,将根据文档路径在线打开对应的文档,保存将自动上传指定服务器地址\n\ \n\ 方法使用:\n\ 页面点击按钮,通过wps客户端协议来启动WPS,调用oaassist插件,执行传输数据中的指令\n\ funcs参数信息说明:\n\ OnlineEditDoc方法对应于OA助手dispatcher支持的方法名\n\ uploadPath 保存文档上传接口\n\ fileName 打开的文档路径\n\ uploadFieldName 文档上传到业务系统时自定义字段\n\ buttonGroups 屏蔽的OA助手功能按钮\n\ userName 传给wps要显示的OA用户名\n\ ", }; /** * 这是HTML页面上的按钮赋予事件的实现,开发者无需关心,使用自己习惯的方式做开发即可 */ window.onload = function () { var btns = document.getElementsByClassName("btn"); for (var i = 0; i < btns.length; i++) { btns[i].onclick = function (event) { document.getElementById("blockFunc").style.visibility = "visible"; var btn2 = document.getElementById("demoBtn"); btn2.innerText = this.innerText; document.getElementById("codeDes").innerText = _wps[this.id].detail.toString(); document.getElementById("code").innerText = _wps[this.id].code.toString(); var onBtnAction = _wps[this.id].action; // document.getElementById("demoBtn").onclick = onBtnAction //IE不支持箭头函数,改为通用写法 document.getElementById("demoBtn").onclick = function () { //IE不支持箭头函数,改为通用写法 //之下动作是做了对Node服务的判断和oem.ini的设置 var xhr = new WpsInvoke.CreateXHR(); xhr.onload = function () { onBtnAction(); }; xhr.onerror = function () { alert("请确认本地服务端(StartupServer.js)是启动状态"); return; }; xhr.open("get", "http://127.0.0.1:3888/FileList", true); xhr.send(); }; hljs.highlightBlock(document.getElementById("code")); }; } }; /** * 检查操作系统 * * @returns Win10 | Win7 | WinVista | Win2003 | WinXP | Win2000 | Linux | Unix | Mac */ function detectOS() { var sUserAgent = navigator.userAgent; var isWin = navigator.platform == "Win32" || navigator.platform == "Windows"; var isMac = navigator.platform == "Mac68K" || navigator.platform == "MacPPC" || navigator.platform == "Macintosh" || navigator.platform == "MacIntel"; if (isMac) return "Mac"; var isUnix = navigator.platform == "X11" && !isWin && !isMac; if (isUnix) return "Unix"; var isLinux = String(navigator.platform).indexOf("Linux") > -1; if (isLinux) return "Linux"; if (isWin) { var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1; if (isWin2K) return "Win2000"; var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || sUserAgent.indexOf("Windows XP") > -1; if (isWinXP) return "WinXP"; var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1; if (isWin2003) return "Win2003"; var isWinVista = sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1; if (isWinVista) return "WinVista"; var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1; if (isWin7) return "Win7"; var isWin10 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 10") > -1; if (isWin10) return "Win10"; } return "other"; }