[H5]在自定义页面中使用RPA SDK
Author: 张皓帆、傅腾
使用RPA JS扩展开发,我们可以在RPA中打开自定义页面并传递参数给这个页面。在自定义页面中处理相关的业务逻辑,并把结果返回给主app。
在自定义页面中,通过引入RPA SDK,可以调用所有的PRA的方法。下面我们分步看如何在自定义页面中使用RPA SDK。
- 在主App中编写并发布RPA JS扩展代码,将如下的扩展代码放入某个生命周期方法中:
const systemUtils = new xsyrpa.SystemUtils();
systemUtils.openWindow({
url: 'hello', //菜单编码
}).then((dataFromWindow) => {
console.log(dataFromWindow); //输出: open api请求结果
//自定义页面如果没有主动调用sendBackResult方法,会在页面关闭时,进入此处回调方法
});
- 编写自定义页面,打包并上传到admin、开发者平台、页面代码之中。
<html>
<!-- 引入sdk.js,请替换成当前环境的rs地址 -->
<head><script src='https://rs.ingageapp.com/breeze/static/xsy-breeze-ui-rpa/latest/sdk.js'></script></head>
<body>
<button onclick="handleClick()">Hello</button>
<script>
//和主App中编写的RPA不同,不会打包,不要使用ES6语法,兼容IE
var systemUtils, xRequest;
//页面和sdk加载完成后,再使用sdk的方法
document.addEventListener('DOMContentLoaded', function() {
systemUtils = new xsyrpa.SystemUtils();
xRequest = new xsyrpa.XRequest();
//如果自定义页面没有调用sendBackResult方法,会在页面关闭时,进入openWindow方法的回调
//没有需要返回的内容,可以主动调用一次sendBackResult返回空
//systemUtils.sendBackResult(null)
});
function handleClick() {
//从query string中得到从主App中传递的参数
var data = location.search;
console.log(data); //输出: ...&data=some_data ,其中包括了access token
//可以在自定义页面中调用RPA方法
xRequest.request({
url: `/rest/data/v2.0/xobjects/account/description`,
headers: {},
method: "GET"
}).then(function(data){
//将open api请求结果回传给主App
systemUtils.sendBackResult(function(){
//返回上一页
systemUtils.goBack()
})
}).catch(function(ex){});
}
</script>
</body>
</html>

- 配置自定义菜单,类型为内部,终端为
移动端,URL配置成上一步自定义页面中的地址。

- 通过网页端或企业微信端打开应用,验证结果。
