为什么浏览器打开WPS时,会弹出请确认是否打开应用弹框,且publish页面中点击了确认,WPS进程为什么没有启动
WPS是通过浏览器的自定义浏览器协议来唤起WPS的伺候进程(本地的一个httpServer进程,占用58890端口),业务系统再通过向伺候进程发送请求(唤起WPS,获取本地publish.xml文件中的所有加载项等),伺候进程根据请求信息做相应的操作后,并将结果返回。
自定义浏览器是浏览器自身功能。出于安全策略,会告知用户将打开本地应用,需要用户自己去判断是否打开本地应用。所以这个弹窗是浏览器自己去定义的,我们无法绕过。但是我们和国内的多家浏览器平台有做过沟通(360:windows上暂未加入,国产机上已加入。奇安信:windows和国产机都已加入),将我们的WPS应用加入到自定义浏览器协议白名单中,这样使用自定义浏览器协议唤起我们的WPS进程时,就不会需要弹出确认弹窗了。
publish.html页面中我们只是去唤起了伺候进程,且向伺候进程发送了获取本地publish.xml文件中的所有加载项。并没有发送唤起WPS的请求,所以WPS并不会启动。
通过打包将58890端口所使用的进程加入到开机自启动中,但是该操作可能会被杀毒软件拦截,如果被拦截,则还是按照弹窗授权方式唤起58890端口。
版本支持:
linux:10681(qt5分支)
windows:10912及以后
打包配置:
[setup]
InstallJsApiService=1
问题
为什么浏览器打开WPS时,会弹出请确认是否打开应用弹框,且publish页面中点击了确认,WPS进程为什么没有启动
问题原因:
WPS是通过浏览器的自定义浏览器协议来唤起WPS的伺候进程(本地的一个httpServer进程,占用58890端口),业务系统再通过向伺候进程发送请求(唤起WPS,获取本地publish.xml文件中的所有加载项等),伺候进程根据请求信息做相应的操作后,并将结果返回。
自定义浏览器是浏览器自身功能。出于安全策略,会告知用户将打开本地应用,需要用户自己去判断是否打开本地应用。所以这个弹窗是浏览器自己去定义的,我们无法绕过。但是我们和国内的多家浏览器平台有做过沟通(360:windows上暂未加入,国产机上已加入。奇安信:windows和国产机都已加入),将我们的WPS应用加入到自定义浏览器协议白名单中,这样使用自定义浏览器协议唤起我们的WPS进程时,就不会需要弹出确认弹窗了。
publish.html页面中我们只是去唤起了伺候进程,且向伺候进程发送了获取本地publish.xml文件中的所有加载项。并没有发送唤起WPS的请求,所以WPS并不会启动。
已优化
通过打包将58890端口所使用的进程加入到开机自启动中,但是该操作可能会被杀毒软件拦截,如果被拦截,则还是按照弹窗授权方式唤起58890端口。
版本支持:
linux:10681(qt5分支)
windows:10912及以后
打包配置:
[setup]
InstallJsApiService=1
📋 章节目录
问题 问题原因: 已优化