开发版,容器部署,试用许可已安装。
word,ppt,excel均能正常浏览。
自带的下载菜单按钮能用。
但config里自定义的downloadAs方法却不一而足。
word能正常下载,excel和ppt都不行。
仔细比对调试了代码。发现app.js的文件里有很多蹊跷。
这三个类型的文档加载的app.js都是不一样的
上面三个路径分别对应ppt,word,excel的加载项。
路径不一样,文件也不一样。这可以理解,不同文档特性不同,根据业务分开处理没毛病。
但同样的功能却搞不一样的实现,有点奇怪。
手动触发下载流程大概是这样的:
1、发起下载请求,一个downloadas指令请求:
2、服务端响应,并通过websocket返回下载地址:
再通过事件trigger通知到最初绑定的downloadAs函数。
完成下载闭环。
仔细分析了他们的流程,word是能正常工作的,整个流程没问题。
excel不行。为啥不行呢?
分析app.js
word:
excel:
excel是canDownload=true时走到reportError里去了,有点匪夷所思。
加个!就可以了,程序员不骗程序员。
再看ppt为啥不行。
ppt的这段流程是对的,没毛病。
下载请求发出去了,websocket也通知回来了,但没回调绑定的downloadAs事件。
再仔细对比,发现是最终的asc_onDownloadUrl没注册,
word和excel中都有注册,独ppt没有,奇怪,于是仿照word注册进去,还是报错,
结果发现对应的事件都没做申明,补上居然可以了!!!
1、加上下面这个
2、再加上下面这个
把新的app.js挂载到docker对应的目录即可。
这种问题,问官方客服是没有用的,问就是要你看文档。
坑这么多,不知onlyoffice尚能饭否。。。