install.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. 
  2. /*
  3. * 将自己的加载项地址配置到这里来
  4. * 需要保证加载项的name和业务业务系统中传递加载项name相对应
  5. * url必须以/ 结尾,且url+ribbon.xml和url+index.html在清除浏览器缓存的情况下能直接访问,不会被重定向
  6. * addonType:对应组件类型,wps文字,wpp演示,et表格
  7. */
  8. //复制开始
  9. var url = window.location.origin.indexOf("localhost") != -1?"http://192.168.10.110:8088" : window.location.origin;
  10. // var curList = [{"name":"EtOAAssist","addonType":"et","online":"false","url":"http://127.0.0.1/jsplugindir/EtOAAssist.7z","version":"1.0.0"}]; //离线模式参考
  11. var curList = [{ "name": "WpsOAAssist", "addonType": "wps", "online": "true", "url": url + "/glworkweb/WpsOAAssist/" }]//在线模式配置参考-对应https的install安装文件
  12. //var curList = [{ "name": "WpsOAAssist", "addonType": "wps", "online": "true", "url": "http://192.168.10.110:8088/g2workweb/WpsOAAssist/" }]//在线模式配置参考-要对应http的install安装文件
  13. var localList = [];
  14. var publishIndex = 0;
  15. /*获取用户本地全部加载项的接口是必须要的,这个接口做了判断,
  16. ** 如果58890端口未启动,会先去启动这个端口
  17. */
  18. //加载项安装函数
  19. function installWpsAddin(callBack, data) {
  20. console.log(4)
  21. WpsAddonMgr.getAllConfig(function (e) {
  22. if (!e.response || e.response.indexOf("null") >= 0) {//本地没有加载项,直接安装
  23. if (curList.length > 0) {
  24. installWpsAddinOne(callBack, data);
  25. }
  26. } else {//本地有加载项,先卸载原有加载项,然后再安装
  27. localList = JSON.parse(e.response)
  28. unInstallWpsAddin(callBack, data)
  29. }
  30. })
  31. }
  32. //安装单个加载项
  33. function installWpsAddinOne(callBack, data) {
  34. console.log(3)
  35. if (publishIndex >= curList.length) {
  36. publishIndex = 0;
  37. }
  38. WpsAddonMgr.enable(curList[publishIndex], function (e) {
  39. publishIndex++;
  40. if (e.status) {
  41. console.log(e.msg || e.message)
  42. } else {
  43. console.log("安装成功")
  44. if (publishIndex >= curList.length) {
  45. callBack && callBack(...data)
  46. }
  47. }
  48. if (publishIndex < curList.length) {
  49. installWpsAddinOne(callBack, data);
  50. }
  51. })
  52. }
  53. //卸载单个加载项
  54. function unInstallWpsAddin(callBack, data) {
  55. console.log(2)
  56. WpsAddonMgr.disableall({}, function (e) {
  57. if (e.status) {
  58. console.log(e.msg || e.message)
  59. } else {
  60. console.log("卸载成功")
  61. }
  62. if (curList.length > 0) {
  63. installWpsAddinOne(callBack, data);
  64. }
  65. })
  66. }
  67. //复制结束,
  68. //将复制的这部分内容放到业务系统用户调起WPS前必须访问的一个页面中。
  69. //页面加载完成后,自动安装
  70. window.onload = function () {
  71. console.log(5)
  72. installWpsAddin() //不执行回调函数
  73. //installWpsAddin(_WpsInvoke,[[{test:1}],true,"http://127.0.0.1:3888/jsplugins.xml",false]) //回调函数案例
  74. }