用企业微信机器人做交互式前端-开发与复用

用企业微信机器人做交互式前端-附录二

本系列所有文章请访问:概述

微信机器人的开发过程

jxTMS的微信机器人就单纯的开发来说是很简单的:

1、开通微信机器人,详见添加微信功能中的【开通机器人】一节

2、对需要添加到微信机器人中的操作用wx进行修饰,详见添加微信功能中的【添加微信功能】一节

3、如果这些操作需要输入,则为其添加输入提示,详见交互式输入中的【交互式输入的定义】一节

4、做本地测试

5、将代码发布到生产服务器上,热机刷新即hotReload即可

微信机器人对web界面的复用

为降低开发两套ui的工作量,对于微信机器人的开发我们希望尽可能的从web界面中复用。好在微信机器人在大多数情况下都只是web界面的一个子集,所以大大降低了维护并协同两套ui和业务代码的工作量。

web界面的复用我们通过引用来实现,如:

//用于微信机器人的界面
web wxPage type div;
/* wxPage的定义*/

//仅用于web界面的其它信息
web otherInfo type div;
/* otherInfo的定义*/

//用于web的界面由wxPage和其它信息两部分组成
web webPage type div;
web webPageDiv1 parent webPage ref wxPage width=900;
web webPageDiv2 parent webPage ref otherInfo width=900;

即我们为微信机器人专门定义了一个web界面,然后webUI引用这个界面同时再添加其它信息。

针对代码的复用可以调用jxTMS用java实现的call函数:

Object call(IDBop db, context ctx,String capaname, String funcname, Object... params)

其中:

  • capaname:目标函数所在功能点的名字,形如:空间名.模块名

  • funcname:函数名

  • params:传递给目标函数的变参列表

如,我们在资产管理的asset.main中定义一个改变资产状态的操作函数::

@myModule.event('cmd', 'changeAssetState')
def changeAssetState(self, db, ctx):
	......其它针对web界面的工作
	self._changeAssetState(db,ctx)

#修改资产状态的实际代码
def _changeAssetState(self, db, ctx):
	......

而在asset.wx模块中我们可以如下调用:

self.call(db,ctx,'asset.main','_changeAssetState')

jxTMS会临时将asset.main功能点的输入输出重定向到asset.wx模块中,这样就是可在asset.main的_changeAssetState函数正常用self.getInput函数从微信机器人处读取用户的输入、用self.setOutput函数通过微信机器人发送到企业微信中显示给用户。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值