用企业微信机器人做交互式前端-开发与复用 | java微信机器人
【用企业微信机器人做交互式前端-开发与复用 | java微信机器人】lot物联网小编为你整理了的相关内容,希望能为你解答。
本系列所有文章请访问:概述
微信机器人的开发过程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函数通过微信机器人发送到企业微信中显示给用户。
以上内容为【用企业微信机器人做交互式前端-开发与复用 | java微信机器人】的相关内容,更多相关内容关注lot物联网。