# robot-tools **Repository Path**: learn_coding/robot-tools ## Basic Information - **Project Name**: robot-tools - **Description**: 本项目为uni-app的应用程序,提供模拟点击控制安卓手机的能力 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 13 - **Created**: 2021-04-15 - **Last Updated**: 2021-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 本项目为uni-app的应用程序,提供模拟点击控制安卓手机的能力。 ## 安装 ``` npm i robot-tools ``` ## 1. 更新/下载基座 ```js robot-tools init ``` Hbuilder的菜单:运行 -> 手机或模拟器 -> 运行基座选择 -> 自定义基座(勾选) ## 2. 在项目中使用 ```js var {robot} = require('robot-tools'); var param = { file: 'demo.js', //机器人脚本(static/robots/目录下),或绝对路径/sdcard/xxx.js,或远程URL(也可以用发布的打包加密代码) vue: this, //可选, 将本vue对象传递给机器人 arguments: {}, //可选, json,传递给机器人的参数。[提示]如果不传递,则系统会默认使用'当时'的vue的data数据 onMessage: ()=>{} //回调函数,机器人给VUE发送消息, 感觉快淘汰了 } robot.stop(); //启动机器人 robot.start(param); ``` #### 机器人脚本,请参考 https://github.com/yooge/robot . . #### 机器人获取VUE发过来的参数(启动机器人时传递的) ```js app.args //json对象 app.arguments ``` #### 机器人给VUE层发消息 ```js app.post2host("message"); //机器人用这个方法给VUE层发消息 ``` #### 机器人脚本直接访问VUE页面对象 ```js app.vue //机器人直接访问vue的对象,上面传递进来的对象this(或别的对象) app.vue.abc //访问data里的abc变量 app.vue.abc = 999; //给data里面的abc赋值 app.vue.test() //访问methods里面的 test函数。 此用法可以淘汰上面的onMessage回调 ``` ## 3. 发布项目 默认使用本项目的热更新服务器 ```js robot-tools deploy ``` #### 3.2 自定义热更新服务器 ```js robot-tools deploy http://abc.com/ ``` 请上传upload.php 到你的服务器位置 http://abc.com/app-store/upload.php ## 4. 热更新 ### 4.1 直接升级 ```js //1. 直接升级 require('robot-tools').version.checkThenInstall(); ``` ### 4.2 检查,然后升级 ```js const {version} = require('robot-tools'); plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => { curVersion = wgtinfo.version; version.checkVersion((res) => { console.log('new version: ' + res.version); uni.showLoading({ title: '加载中...' }); if (curVersion != res.version) { //准备更新 // plus.nativeUI.confirm("是否安装更新?", function(e){ // console.log("Close confirm: "+e.index); // }); version.install((status) => { // // }); } }); }); ``` ## 5. API ```js robot.start(startOption); ``` #### 4.1 startOption | 属性| 类型 | 是否必须 | 描述 | | :-----| :----- | :----- | :----- | | file | string | 是 | 脚本文件路径文件路径(机器人脚本(static/robots/目录下),或绝对路径/sdcard/xxx.js,或远程URL, 可以用发布的打包加密代码) | | httpCacheType | HttpCacheType | 否 | 远程url执行脚本缓存类型 | | arguments | {} | 否 | json,传递给机器人的参数 | | header | Object | 否 | HTTP 请求 Header, header | | onCacheFile | () => string | 否 | 缓存地址回调 | | onMessage | () => any | 否 | 回调函数,机器人给VUE发送消息 | #### 4.1.1 HttpCacheType类 ```js HttpCacheType.NONE: 0, // 无缓存 HttpCacheType.GENERAL: 1, // 有缓存(只储存不强制执行缓存,每次还是会下载) HttpCacheType.COMPEL: 2 // 有缓存(如果发现缓存强制执行缓存不进行下载) ```