最近为WPS信创大比武的决赛,在集中精力开发WPS演示催化剂,一路坑坑哇哇,一个个wps自身的bug不断地冒出,单纯地在QQ群的方式反馈有些零散,也整理下,希望官方看到能重视下,也能让后来者避坑下,遇到了及时止损,另辟蹊径。

截止目前,以下的问题,除WebShape接口问题外,都特指在win系统上的bug,如果不是为了比赛一般也没这个时间去验证linux版本。

bug清单

一、网页控件WebShape接口问题

这个bug各种问题,先是win系统里企业版正常、个人版不可用,然后接着又发现linux上的企业版也不能用,一个招牌好的功能,反反复复,也是早已知晓的,好几个月下来,还是如此现状,也是大写的服字,很讽刺的是本化的WPS信创大比武的决赛里还拿这个WebShape作为加分项,在linux系统上的bug提出来也没一个人回应,不知道想如何收场。

二、WPS演示customxmlpart不能保存问题

这个在开发WPS演示的保存离线文件时发现的,企业版正常,个人版保存不了,就是在代码运行时是正常,文件一保存,再打开就会丢失,同时期的个人版WPS表格是正常。

三、contextMenu右键菜单的添加,在WPS演示的放映模式失效

辛苦学习了一大轮,知道如何在wpsjs里添加右键菜单,结果却因为WPS自身的bug,又把想实现的效果给抹杀了。
使用xml组织ribbon功能区时,使用contextMenu节点可以添加右键菜单,并且可以wpsjs项目里的方法实现回调,对ContextMenuShape可用,但对ContextMenuSlideShow不可用。经vsto项目测试,这个右键菜单的名称是没错的,在vsto上的PowerPoint上顺利加载出右键菜单并绑定事件方法。

四、WPS演示放映模式下新增幻灯片后,新增幻灯片不在当前放映清单中

经PowerPoint测试,代码运行时新增的幻灯片是可以立刻访问到的,最终只能下结论为是WPS接口的bug。

五、WPS演示放映模式,使用代码退出放映模式,再用代码重新进入放映模式失效

因前面第四点问题,本以为可以绕道下,退出后再重进,发现此路不通,不甘心,用vba代码在Powerpoint上测试,发现也是没问题,最终也同样下结论仍然是WPS接口的bug。

六、WPS演示对幻灯片Name属性修改后,保存文件重新打开修改状态丢失

类似第二点情况,文档未关闭、运行时正常,但关闭后再打开会重新覆盖用自动生成的默认名称,此情况在PowerPoint上修改完,用WPS打开再保存,同样会丢失,重新回到PowerPoint上查看,已经被WPS的默认属性覆盖,坑得很,同理第二点也是一样,初步判断原因是WPS没考虑代码改写的情况,一路按自己预设的方式操作,因为这些都不是界面可以修改操作的。

七、WPS演示放映模式,Shapes.Paste方法失效

在非放映模式下,可正常调用内存剪切板内容粘贴,但放映模式下不行,同样地在VBA代码中一样存在这个问题

八、WPS演示放映模式下,WebShape对象内网页的输入框失去焦点不能输入问题

同样地在非放映模式下是正常的,在放映模式下就失效,导致不能正常输入内容。

九、WPS演示放映模式下,键盘快捷键失效问题

同样地在非放映模式下是正常的,在放映模式下就失效,本来是想使用网页上的CTRL+V捕捉事件,但成功率低,貌似和上面的问题有关,会吞掉一些键盘输入按键。

十、WPS演示PresentationOpen事件接口,获取到的presentation对象属性无效

这个在以前的版本里还正常的,最新的企业版却出问题了,拿到的presentation,name属性为空,Slides.Count属性为0,很异常的对象。

十一、Linux下WPS表格Application.InputBox,定位单元格区域后返回值为空

本来想着在WPS演示上调取WPS表格,获取用户选择内容单元格区域,结果这个方法返回的结果为空。

十二、Linux下WPS演示WebShape控件内部网页的复制粘贴会失效

在WebShape所展示的网页上使用了一个JS的电子表格库,用于和用户的复制粘贴操作交互,结果粘贴后的内容变为粘贴到幻灯片上(WebShape控件下方,删除WebShape控件后可见),但WebShape上的网页不出现内容。

结语

WPS开发者生态的创建不易,虽然看到官方在努力,但对比微软OFFICE来说,当下很难受的,除了官方文档的缺失,就是这些莫名的bug的问题,而当下一个更大的痛苦是,bug的提出,也不知道有没有人重视,毕竟这些只影响到开发者群体,一般用户是不会接触到的。

当下的WPS的反馈机制也是非常糟糕,根本无从知晓他们对待bug的态度,起码现阶段来说,没有看到什么正式的反馈,bug知道后有没计划去改善修复它,还有修复的时间表是什么时候,一句话总结就是很糟糕。

希望进入WPS开发的朋友们,提醒大家要有一颗被虐的心态,当下的开发体验,就如使用山寨手机和品牌手机一般,功能都有模有样齐全的,但真正用下来,细节上的体验好好口味其不同。