WPS的JS版插件,现在还有人维护没,发现一些问题,和大家交流一下

最近在制作WPSJS版不坑盒子,距离上线已经不远了,但还是发现了一些问题,不知道js插件这边官方是否还有人在维护。

  1. MacOS下HomePath的问题

Application.Env.GetHomePath()

同样的代码,在Linux下没问题,能正常获取到用户的主目录,但在MacOS下获取到的却是:

当我强行根据这个路径得到/Users/boy/后,发现插件这边无法操作这个路径下的文件,包括:Application.Addins.Add("/Users/boy/a.dotx",true); 这样来添加模板文件,也包括 Application.Documents.open("/Users/boy/a.dotx");

但/Users/boy/Library/Containers/com.kingsoft.wpsoffice.mac/Data 这个目录下的dotx文件却用上面代码正常添加。

当我试图用 Applaction.FileSystem.CopySync() 来把文件从/Users/boy/转移到com.kingsoft.wpsoffice.mac/Data 下,也是不成功的。

这其中是有权限的原因吗?但 /Users/boy/ 应该是不需要特殊权限吧。

二、如何在文字套件中创建表格文件

我在文字套件中,从服务器下载了一个 a.xlsx 文件,想把这个文件打开,但用Applicaion.OAAssist.ShellExecute 来打开在windows下一切正常,在MacOS、Linux下不能打开。

用Application.Documents.open() 又只能打开`.docx`文件(和当前套件相同的文件)

不知道是否有跨套件的一种操作方法,比如: Let xlsApp = Application.GetEt... 这类?我在控制台尝试多次没试出来。

Application.TabPages.Add() 这个看起来像是在wps启用新卡片来打开某个东西,但现在应该还是个半成品,效果如下图:

三、FileDialog在MacOS下好像也有问题

FileDialog在windows和Linux下能正常进行多文件选择,在MacOS下目前会导致崩溃,今天早上才发现,我还没细查。

初步判断是 FileDialog 执行完后(用户选择后),会把所有的文件地址连成一串返回,而不是多个子项返回。

这个待晚上我细细排查。

四、文字、演示套件中,没有 InputBox

没有InputBox想快捷获取用户的输入非常麻烦,目前我用了一种比较绕回的形式来实现,如果有更简便的方法就更好了,不知道是不是我没发现。

现在还有多少同仁在折腾WPS-JS插件呢?国产系统的大面积铺开,WPS-JS的市场很大,也请官方不要放弃它。

重庆
浏览 213
收藏
4
分享
4 +1
8
+1
全部评论 8
 
WPS技术支持-希晨
感谢反馈,问题1中:Mac系统确实存在文件访问权限限制,程序默认可以访问沙盒目录(也就是~/Library/Containers/com.kingsoft.wpsoffice.mac/Data),或者通过追加授权的方式也能访问Documents Downloads几个常规目录;至于文件同步这个API,您是不是用错了,应该是Applaction.FileSystem.copyFileSync(),您可以查阅https://365.kdocs.cn/3rd/open/previous/docs/client/wpsLoad
· 湖北省
回复
不坑老师
ok谢谢,问题一解决了,dotx就放wps的data目录中
· 重庆
回复
 
陈俊东
陈俊东

@金山办公

感谢反馈,Application.TabPages.Add()问题在计划修复中,文字、演示套件确实没有 InputBox,只能用前端显示输入框然后通过ShowDialog/ShowDialogEx显示出来,或者通过js或者vba的宏调用InputBox
· 广东省
回复
不坑老师
好的
· 重庆
回复
 
不坑老师
刚刚证实了,在MacOS下,用FileDialog一次选择多个文件(图片格式),最终得到的是一条item,所有的filePath都无缝拼凑在一起,人工都不好分割开。 /Users/boy/a.jpg/Users/boy/b.png/Users/boy/c.png
· 重庆
1
回复
 
偷得浮生半日闲
压力山大啊一堆屎山代码,文档不清晰,乱七八糟的
· 广东省
1
回复
IV德
加载项的开发文档好久没更新了
· 辽宁省
回复
 
企业用户_605643656
支持
· 湖南省
回复