找回密码
 立即注册

QQ登录

只需一步,快速开始

phoben 讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-1-18 17:37  /   查看:1452  /  回复:2
本帖最后由 phoben 于 2022-1-18 17:54 编辑

自从新版本支持变量以后,开发前端JS类型插件,就一直不能在插件里很好使用这一点(上次在公司当面提过),现在说一下具体需求:

场景:我正在将钉钉、企业微信的所有前端JSAPI都封装起来,如下:



前端JS插件都有一个共同的特点,就是“回调命令”,也就是每一个API都不是同步的
比如“选择成员”的插件,是用户选完了才返回选择的数据,例如:

  1. wx.invoke('selectExternalContact', {
  2.     "filterType": 0,
  3. }, function (res) {
  4.     if (res.err_msg == "selectExternalContact:ok") {
  5.         userIds = res.userIds;
  6.         //这个回调函数内获取用户选择的数据.
  7.     }
  8. })
复制代码


几乎所有前端插件都是回调的,不是同步函数。
如果用户在插件命令后面紧跟一个命令读取,是读取不到的

所以最简单的解决办法如下:




但是在这个“完成命令”里面,我想预置一个参数,让用户在设计器中,提前就可以设计完成后的逻辑



选择后类似这样的效果(也可以开发者直接预置一个变量子命令设计器里,不需要用户提供变量名称)


那我在插件中就可以在回调完成的位置,将用户选择的数据,赋值给这个用户自己定义的变量身上就行了



可能您会说外面直接指定一个单元格,里面直接引用不就可以了。
就像这样:


但实际上是行不通的,经过测试,如果这个单元格没有定义一个名字(如=A1),子命令里是引用不到的。
如果有名字(如=users)就可以引用,我现在就用这个方法,所以带来的不便有亮点。
1、单元格非得要申明名称,不然会报错;
2、既然都申明名称了,为什么不直接使用变量?写到页面,再从页面读取,这是消耗性能的。


所以请大佬帮我出个方案,我这几十个插件,全部都有这个问题。
服务端命令插件倒是没有此问题,因为已经有操纵用户变量的API





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

2 个回复

倒序浏览
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-1-19 18:21:05
沙发
大佬,下个版本会更新一波接口,兴许会有大佬想要的接口公开,大佬可以关注下下个版本的更新信息~
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-1-20 11:33:35
板凳
lh123 发表于 2022-1-19 22:34
什么时候的事?

您好,活字格大版本的更新一般是在每年的4月和10月,8.0预计大概是在今年的4月份左右推出~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部