一、问题现象
最新版本的谷歌、火狐浏览器,调用pageoffice时,点击后没反应(旧的谷歌浏览器不受影响)。
二、产生原因
服务器返回pageOffice的客户端唤起链接格式为:
PageOffice://|http://192.168.1.120:8080/xxx
Chromium v130+中将其视为无效url,不进行系统唤起,在js拼接链接时,去掉第一组双斜杠“//”,链接变成:
PageOffice:|http://192.168.1.120:8080/xxx
即可正常唤起pageOffice客户端。
三、解决方法
1、将当前项目lib下的pageoffice jar包下载到本地(如:pageoffice-4.5.0.5.jar);
2、将pageoffice-4.5.0.5.jar的后缀改为.zip,改后即为:pageoffice-4.5.0.5.zip;
3、将pageoffice-4.5.0.5.zip解压缩,解压缩后样子如下图所示:
4、进入如上图的\com\zhuozhengsoft\pageoffice\poserver目录,获取里面的pageoffice.js文件,使用编辑软件打开(发现是挤压在一起的,无法阅读),复制该文件内容,粘贴到网页版格式化工具(如:JavaScript/HTML格式化 - JSON中文网)中将其按js格式显示,以便调整。
5、如下图所示,搜索文件中的location.href(预计有5处),按照下面内容进行替换。
把
location.href=PO_datas[0]
替换为
location.href=PO_datas[0].replace(/^pageoffice\:\/\//ig, "pageoffice:")
考虑兼容性可以在 try..catch 中先尝试原版的拼接法,浏览器抛错后再尝试去掉第一组双斜杠。
如截图所示:
6、将pageoffice.js中对应的部分修改完成后,替换原来\com\zhuozhengsoft\pageoffice\poserver目录下的pageoffice.js文件。
7、在如下图所示,选中原解压出的文件,压缩为XXX.zip文件。
8、将该 XXX.zip文件改为旧jar的文件名称(如:pageoffice-4.5.0.5.jar)。
9、将该调整后的jar包替换项目lib下的相应jar包,重新启动服务。
四、致谢
谢谢我们的客户提供的解决办法!!!