@miniknife
2021-01-07T04:02:29.000000Z
字数 38895
阅读 298274
已不更新,最新版本查看:http://helpdoc.touchsprite.com/
开发手册
Windows 平台按 Ctrl + F 打开快捷搜索
Mac 平台按 command + F 打开快捷搜索
※右侧文本列表可以找到全部手册
为了进一步降低脚本开发者门槛,触动精灵单独开发一个扩展库,提供了一系列实用函数供开发者使用。
- 在学习脚本开发之前,首先要具备一些关于 iOS 越狱和安卓 root 的知识,以及触动精灵的常用信息
- 文档链接:https://www.zybuluo.com/lisaisacat/note/324664
- 看了上面的文档,你可以具备以下知识:
- 什么样的手机适合用来做脚本开发
- 拿到一台越狱手机之后应该做什么才能避免白苹果和报错
- Cydia 不见了或者已安装界面空白该怎么办
- 为什么安装插件总是报错呢
- 首先你需要了解 Lua 这门语言的一些基础知识,什么是循环,什么是函数,布尔型和数值型分别是什么意思,才有可能看得懂下面的教程和手册。
- 文档地址:https://www.zybuluo.com/lisaisacat/note/636399
- 新手在学习使用触动精灵开发脚本的时候,总会进入一些误区,或者会有一些迷惑的点,觉得无从下手,本文总结了一些自己在学习过程中遇到的问题和经验技巧,欢迎大家一起交流分享。
- 文档链接:https://zybuluo.com/lisaisacat/note/508345
- 看了上面的文档,你可以具备以下知识:
- 透明背景图、动图、带动画的界面应该怎么取色
- 找色和找图哪个更好用
- 函数封装是什么
- 脚本报错了怎么办
- 如果你没有任何编程基础,可以先看一下零基础教学视频:https://www.zybuluo.com/lisaisacat/note/585252
- 看了上面的文档,你可以具备以下知识:
- deb 插件安装方法
- 平刷插件 Cydia Eraser
- SSH 命令工具 putty
- 触动精灵的安装使用及常识
- 抓色器和编辑器的使用及常识
- 同样的脚本为什么有的手机运行异常
- showUI 返回值的调用
- showUI 应该怎么写才简洁好用
- 大漠字库工具的用法
- 由于触动精灵在线文档数量较多,很多人不知道如何查询,现建立此文档做为索引,其中会补充一些软件使用的常用信息。
- 触动精灵旗下目前有四款软件:触动精灵(iOS/Android)、小精灵(iOS/Android)、企业版(iOS/Android 开发中)。
- 触动精灵适合开发者和有中控开发能力的工作室使用
- 小精灵适合有图标和包名自定义需求的开发者和工作室使用
- 企业版适合有批量控制设备需求的工作室使用
- 文档地址:https://www.zybuluo.com/miniknife/note/509515
| 产品名称 | 自定义图标 | 录制 | 调试 | 运行源码 | 授权 | 批量控制 | 支持平台 | 开发者平台 |
|---|---|---|---|---|---|---|---|---|
| 触动精灵iOS | × | √ | √ | √ | iOS:36 元/台/年,Android:免费 | 购买API自行开发 | iOS/Android | http://dev.touchsprite.com/site/index |
| 触动小精灵 | √ | × | × | × | 5.5 元/台/月 | 购买API自行开发 | iOS/Android | http://app.touchsprite.com/ |
| 触动企业版 | × | × | × | √ | iOS:46 元/台/年,Android:测试期 0.1 元/台/年 | 免费 | iOS/Android | http://ent.touchsprite.com/ |
在文档右侧栏顶部点击文档分类菜单栏按钮,即可查看触动精灵所有在线文档。

更新日期: 2018-07-17
更新日志:
- 新增 PACVM 对监控变量额增删改查函数
- 新增 multiColor 控制是否主动保持屏参数
- 新增 multiColTap 函数支持以 table 格式传入选填参数
- 修复便捷 UI 单选框以 table 格式传递参数时默认选中项无效的问题
- 修复 moveCircleCenter 函数滑动方向无效的问题
- 修复 moveCirclePonits 函数滑动方向无效的问题
更新日期: 2018-11-12
更新日志:
[v1.2.7]触动精灵/小精灵(基础版)/企业版(更新于2018-11-12):TSLib.lua
[v1.1.8.0]帮你玩旧版(更新于2017-01-18)下载:https://pan.baidu.com/s/1i4-ir5LNfi8iXk_wV_l6pQ 密码:k8hm
※帮你玩已内置新版本扩展库,如果使用有问题可尝试下载手册旧版
- 解压压缩包内文件,需要将文件拉到触动脚本文件目录里面(iOS v2.3.9 已内置本函数库)
- 触动精灵 iOS 脚本文件目录:/var/mobile/Media/TouchSprite/lua
- 触动精灵安卓脚本文件目录:/mnt/sdcard/TouchSprite/lua
- 如果上传 tsp 将该文件一起打进 zip 包即可
- 在脚本开头写 require "TSLib"(注意文件名大小写是否正确)
- 务必使用最新版本的扩展库文件

注意事项:
- 如果修改了文件名请一定要保持双引号内的文件名与实际文件名一致。
- 如果要远程调试或上传到开发者平台,记得把函数库文件和脚本文件一起传到设备或打包。
- 触动小精灵使用此函数库(非网络获取和打码部分)只需要勾选
基础版类型即可
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下dialog(TSVersions()) --返回版本号字符串,返回值如:1.1.1
| 参数 | 类型 | 必填/选填 | 说明 |
|---|---|---|---|
| name | string | 必填 | 插件或函数库名称,aso、vpn、tsvpn |
| 返回值 | 类型 | 说明 |
|---|---|---|
| bool | boolean | true - 查询成功,false - 查询失败 |
| msg | string | 查询结果或错误信息 |
脚本示例:
--[[aso = ASO 插件vpn = VPN 插件tsvpn = 云代理--]]require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下local bool,msg = checkTSLibrary("tsvpn") -- TSLib 1.2.5 以上版本支持此函数dialog((bool and "成功 : " or "失败 : ") .. msg)
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标 x | number | 必填 |
| 坐标 y | number | 必填 |
| 时间 ms | number | 选填,缺省默认为 50,单位毫秒 |
| 显示点击位置 pic | string | 选填,图片路径,支持绝对路径和相对路径,相对路径默认为 res 目录,图片不存在则不显示点击位置,仅支持函数库 v1.2.4 及其以上版本 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下tap(100,200,50,"1.png") --点击坐标(100,200),默认按下 50 毫秒后抬起
请点击示例图片下载图片。
请点击视频查看演示效果。
注意事项:
tap 点击后可以加适量的延时
如果想显示点击位置,该参数前的所有参数都必须需要填写,否则会报错
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标 x | number | 必填 |
| 坐标 y | number | 必填 |
| 随机 r | number | 选填,缺省默认为 5,单位 px |
| 显示点击位置 pic | string | 选填,图片路径,支持绝对路径和相对路径,相对路径默认为 res 目录,图片不存在则不显示点击位置,此参数仅支持函数库 v1.2.4 及其以上版本) |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下randomTap(100,200,10,"1.png") --随机点击坐标(x,y),x 为 100±10 取一个随机值,y 为 200±10 取一个随机值。
请点击示例图片下载图片。
请点击视频查看演示效果。。
注意事项:
randomTap(x,y,r)当r不写时默认为 5,即randomTap(x,y)即可。当随机数 r 写 10 时,则按下的 x 和 y 会自动加上 -10 到 10 之间的一个随机数
如果想显示点击位置,该参数前的所有参数都必须需要填写,否则会报错
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标 x | number | 必填 |
| 坐标 y | number | 必填 |
| 随机值 r | number | 选填,缺省默认为 20,单位 px |
| 显示点击位置 pic | string | 选填,图片路径,支持绝对路径和相对路径,相对路径默认为 res 目录,图片不存在则不显示点击位置,此参数仅支持函数库 v1.2.4 及其以上版本 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下randomsTap(100,200,10,"1.png") --随机点击滑动坐标(x,y),x 为 100±10 取一个随机值,y 为 200±10 取一个随机值。并在此范围内随机抖动。--参数齐全后显示点击位置的图标才会显示
请点击示例图片下载图片。
请点击视频查看演示效果。
注意事项:
如果想显示点击位置,该参数前的所有参数都必须需要填写,否则会报错
| 参数 | 类型 | 说明 |
|---|---|---|
| 起点 x1 | number | 必填 |
| 起点 y1 | number | 必填 |
| 终点 x2 | number | 必填 |
| 终点 y2 | number | 必填 |
| 速度 step | number | 选填,缺省默认为 10,单位 px |
| 弹起 ms | number | 选填,缺省为 50,单位毫秒 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下moveTo(100,100,200,200) --从坐标(100,100)滑动到(200,200),默认步长为10 像素。默认移到另一点等待50毫秒弹起
注意事项:
- 可选参数速度 step,当不写默认为 10,也可自己填写,step 步长越大滑动越快,为大于 0 小于距离长度的数值。
- 使用滑动函数时,新手常犯的错误就是两点之间滑动距离过大,请注步长不宜超过 50。
| 参数 | 类型 | 说明 |
|---|---|---|
| 起点 x | number | 必填 |
| 起点 y | number | 必填 |
| 角度 angle | number | 必填 |
| 长度 length | number | 必填 |
| 速度 step | number | 选填,缺省默认为 10,单位 px |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下moveTowards(500,500,90,300) --从坐标(500,500)向上滑动300
注意事项:
- 角度angle为0时向右滑动,90向上滑动,180向左滑动
- 长度 length 大于0
- 可选参数速度 step,当不写默认为 10,也可自己填写,step 应为大于 0 小于距离长度的数值,建议小于 50,否则会出现滑动无效的情况
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标 x1 | number | 必填 |
| 坐标 y1 | number | 必填 |
| 坐标 x2 | number | 必填 |
| 坐标 y2 | number | 必填 |
| 速度 step | number | 选填,缺省默认为 50,单位 px |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下moveZoomOut(100,100,300,300) --从坐标(100,100)和坐标(300,300)同时向中间点滑动缩小
注意事项:
可选参数速度 step,当不写默认为 10,也可自己填写,step 为大于 0 小于距离长度的数值,建议小于 50,否则会出现滑动无效的情况
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标 x1 | number | 必填 |
| 坐标 y1 | number | 必填 |
| 坐标 x2 | number | 必填 |
| 坐标 y2 | number | 必填 |
| 速度 step | number | 选填,缺省默认为 50,单位 px |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下moveZoomIn(100,100,300,300) --两点坐标中间同时向坐标(100,100)和坐标(300,300)两端滑动
注意事项:
可选参数速度step,当不写默认为10,也可自己填写,step 为大于0小于距离长度的数值,建议小于 50,否则可能会导致函数运行无效
| 参数 | 类型 | 说明 |
|---|---|---|
| 圆心 cX | number | 必填 |
| 圆心 cY | number | 必填 |
| 圆上点 x | number | 必填 |
| 圆上点 y | number | 必填 |
| 角度 angle | number | 选填,缺省默认为 360,转一周 |
| 速度 step | number | 选填,缺省默认为 10,单位 px |
| 方向 direction | number | 选填,缺省默认为逆时针,-1 时为顺时针 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下moveCircleCenter(200,200,0,200) --以圆心坐标(200,200),圆上一点起点(0,200),逆时针转一圈
注意事项:
- 角度 angle 大于 0,转 1 圈数值为 360,以此类推
- step 步长不写默认为10,越小越快,大于 0,建议小于 50,否则可能会导致函数运行无效
- 方向 direction 默认逆时针,-1 时为顺时针
| 参数 | 类型 | 说明 |
|---|---|---|
| 圆上点 x1 | number | 必填 |
| 圆上点 y1 | number | 必填 |
| 圆上点 x2 | number | 必填 |
| 圆上点 y2 | number | 必填 |
| 圆上点 x3 | number | 必填 |
| 圆上点 y3 | number | 必填 |
| 角度 angle | number | 选填,缺省默认为 360,转一周 |
| 速度 step | number | 选填,缺省默认为 10,单位 px |
| 方向 direction | number | 选填,缺省默认为逆时针,-1 时为顺时针 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下moveCirclePonits(300,100,100,200,500,200) --三点坐标确定圆心,以圆上起点(300,100),逆时针转一圈
注意事项:
- 角度 angle 大于 0,转 1 圈数值为 360,以此类推
- step 步长不写默认为10,越小越快,大于 0,建议小于 50,否则可能会导致函数运行无效
- 方向 direction 默认逆时针,-1 时为顺时针
--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--仅支持 V1.2.7 以上版本的 TSLibrequire "TSLib"local touch = touch()touch:on(100,100):move(100,100):off()
注意事项:
此函数需要 on 函数使用才能生效
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标 x | number | 必填 |
| 坐标 y | number | 必填 |
脚本示例:
--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--仅支持 V1.2.7 以上版本的 TSLibrequire "TSLib"local touch = touch()touch():on(100,100):off()
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标 x | number | 必填 |
| 坐标 y | number | 必填 |
脚本示例:
--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--仅支持 V1.2.7 以上版本的 TSLibrequire "TSLib"touch():on(100,100):move(200,200):off()
脚本示例:
--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--仅支持 V1.2.7 以上版本的 TSLibrequire "TSLib"touch():on(100,100):move(200,200):off()
| 参数 | 类型 | 说明 |
|---|---|---|
| time | bumber | 延时时间,不写默认为 5ms |
脚本示例:
--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--仅支持 V1.2.7 以上版本的 TSLibrequire "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下touch():Delay(10):on(100,100):move(200,200):off()
| 参数 | 类型 | 说明 |
|---|---|---|
| Step | number | 步长,不写默认值为 10 像素 |
脚本示例:
--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--仅支持 V1.2.7 以上版本 TSLib 使用require "TSLib"touch():Step(5):on(100,100):move(200,200):off()
完整示例一
--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--仅支持 V1.2.7 以上版本的 TSLibrequire "TSLib"local touch = touch()touch = touch:on(100,100)touch = touch:Step(10)touch = touch:Delay(5)touch = touch:move(100,200)touch = touch:move(200,200)touch = touch:move(200,100)touch = touch:move(100,100)touch:off()
完整示例二
--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--仅支持 V1.2.7 以上版本的 TSLibrequire "TSLib"touch():on(100,100):Step(10):Delay(5):move(100,200):move(200,200):move(200,100):move(100,100):off()
| 参数 | 类型 | 说明 |
|---|---|---|
| 颜色 color | number | 必填 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下r,g,b = intToRgb(0xffffff) --返回255 255 255 三个值
注意事项:
返回值 r,g,b 可为自定义变量
| 参数 | 类型 | 说明 |
|---|---|---|
| 红 r | number | 必填 |
| 绿 g | number | 必填 |
| 蓝 b | number | 必填 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下color = rgbToInt(255,255,255)--返回十六进制颜色值 0xffffff
注意事项:
返回值为十六进制颜色数值
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标 x | number | 必填 |
| 坐标 y | number | 必填 |
| 颜色 c | number | 必填 |
| 模糊度 dim | number | 选填,缺省默认为 90 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下if isColor(100,200,0xffffff) then --判断点(100,200)的颜色值是否为 0xffffff,模糊度默认为90dialog("找到啦",0)end
注意事项:
可选参数模糊度 dim,不写默认为 90,最精确为100,但不建议使用 100
| 参数 | 类型 | 说明 |
|---|---|---|
| 颜色数组 array | table | 必填 |
| 模糊度 dim | number | 选填,缺省默认为 90 |
| 保持屏幕 flag | boolean | 选填,默认是 true,保持屏幕 - true,取消保持屏幕 - false,仅支持函数库 v1.2.6 及其以上版本 |
脚本示例:
方式一:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--全部坐标点和颜色一致时返回 true,== true 可省略不写if multiColor({{78,272,0x00a8e9},{120,266,0xffffff},{122,197,0x00a8e9}},90,false) == true thentap(x,y)mSleep(50)toast("找到颜色并点击")mSleep(3000)end
方式二(table 格式):
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下local options = {["dim"] = 90,["flag"] = false}local color_table = {{ 45, 171, 0xff5722},{ 45, 168, 0xfce6a8},{ 45, 174, 0xfce6a8},}if multiColor(color_table,options) then--全部坐标点和颜色一致时返回 true,== true 可省略不写toast("找到颜色")elsetoast("未找到颜色")end
注意事项:
- array 为 table 表,坐标颜色值数量任意(填一个坐标和颜色值时为单点找色),可配合触动精灵抓色器自动生成代码使用
- 模糊度 dim 不填默认为 90
| 参数 | 类型 | 说明 |
|---|---|---|
| 颜色数组 array | table | 必填,使用抓色器获取 |
| 模糊度 dim | number | 选填,缺省默认为 90 |
| 点击效果图 pic | string | 选填,图片路径,支持绝对路径和相对路径,相对路径默认为 res 目录,图片不存在则不显示点击位置,仅支持函数库 v1.2.4 及其以上版本 |
| 保持屏幕 flag | boolean | 选填,默认是 true,保持屏幕 - true,取消保持屏幕 - false,仅支持函数库 v1.2.4 及其以上版本 |
脚本示例:
方式一:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下--全部坐标点和颜色一致时返回 true,== true 可省略不写if multiColor({{78,272,0x00a8e9},{120,266,0xffffff},{122,197,0x00a8e9}},90,false) thentoast("找到颜色")elsetoast("未找到颜色")end
方式二(table 格式):
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下local options = {["dim"] = 90,["flag"] = true}local color_table = {{ 45, 171, 0xff5722},{ 45, 168, 0xfce6a8},{ 45, 174, 0xfce6a8},}if multiColTap(color_table,options) then--判断多个坐标相应颜色是否成立,成立则点击最后一个坐标toast("找到颜色")elsetoast("未找到颜色")end
注意事项:
- array 为 table 表,坐标颜色值数量任意(填一个坐标和颜色值时为单点找色),可配合触动精灵抓色器自动生成代码使用
- 模糊度 dim 不填默认为 90
| 参数 | 类型 | 说明 |
|---|---|---|
| 颜色点阵 tmp | table | 必填,点阵 |
| 模糊度 degree | number | 必填,模糊度 |
| 坐标 x1 | number | 选填,缺省默认值0,区域左上角横坐标 |
| 坐标 y1 | number | 选填,缺省默认值0,区域左上角纵坐标 |
| 坐标 x2 | number | 选填,缺省默认值0,区域右下角横坐标 |
| 坐标 y2 | number | 选填,缺省默认值0,区域右下角纵坐标 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| x,y | number | 返回符合条件的参照点的坐标,如未找到则返回 -1,-1 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下反叛的堕天使路西法= {{ 46, 418, 0xf7efda},{ 77, 429, 0x8b6248},{ 42, 449, 0xfdf5ee},{ 70, 439, 0x83305d},{ 57, 458, 0xad736a},}x,y=findMultiColorInRegionFuzzyByTable(反叛的堕天使路西法,90,1,365,105,500)--在1,365,105,500这个区域寻找反叛的堕天使路西法这个图像if x ~= -1 thentap(x,y)end
| 参数 | 类型 | 说明 |
|---|---|---|
| 内容 wlog | string/number | 必填,number 类型仅支持函数 v1.2.4 及其以上版本 |
| 日志名称 name | string/number | 选填,缺省默认为“脚本日志”,number 类型仅支持函数库 v1.2.4 及其以上版本 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下log("我的第一个脚本","脚本日志")--在 log 目录下生成文件:脚本日志.log,文本内容:"我的第一个脚本"
注意事项:
日志会自动生成到触动精灵文件目录的 log 文件夹下,在客户端更多 - 日志界面可以查看。
日志过多时记得及时清除避免设备卡顿
| 参数 | 类型 | 说明 |
|---|---|---|
| 文件路径 file | string | 必填 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下isFileExist(userPath().."/res/test.txt") --存在返回true,不存在返回false
注意事项:
文件存在返回true,不存在则返回false
| 参数 | 类型 | 说明 |
|---|---|---|
| 文件路径file | string | 必填 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下readFile(userPath().."/res/test.txt") --读取文件内容,返回一个 table
注意事项:
文件不存在则返回false
| 参数 | 类型 | 说明 |
|---|---|---|
| 文件路径file | string | 必填 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下readFileString(userPath().."/res/test.txt") --读取文件内容,返回全部内容的string
注意事项:
文件不存在则返回false
| 参数 | 类型 | 说明 |
|---|---|---|
| 文件路径 file | string | 必填 |
| 表格内容 tab | string | 必填 |
| 写入方式 mode | string | 选填,默认是清空写入模式 "w",追加写入模式 "a" |
| 控制结束是否换行 wrap | number | 选填,输入 1 换行,非 1 不换行,此参数仅支持函数库 v1.2.4 及其以上版本 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下writeFile(userPath().."/res/test.txt",{1,2,3,4},"a",1) --将 table 内容存入文件,成功返回 true
注意事项:
- 写入文件会追加在文件原来的内容后面,不存在该文件则创建文件再写入内容
- 如果想重新写入先用删除函数删除文本再写入即可
| 参数 | 类型 | 说明 |
|---|---|---|
| 文件路径 file | string | 必填 |
| 字符串内容 str | string | 必填 |
| 写入方式 mode | string | 选填,默认是清空写入模式"w",追加写入模式"a" |
| 控制结束是否换行 wrap | number | 选填,输入 1 换行,非 1 不换行,此参数仅支持函数库 v1.2.4 及其以上版本 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下writeFileString(userPath().."/log/11.log","1234","a",1) --将 string 内容存入文件,成功返回 true
注意事项:
写入文件会追加在文件原来的内容后面,不存在该文件则创建文件再写入内容
| 参数 | 类型 | 说明 |
|---|---|---|
| 文件路径file | string | 必填,绝对路径 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下delFile(userPath().."/res/test.txt") --删除test.txt文件,需要填写绝对路径
注意事项:
需要填写绝对路径
函数名称:编码,解码
函数功能:json 串编码、解码
支持版本:扩展库 1.2.1 以上版本
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下dialog(urlEncoder("触动精灵")) -- 编码mSleep(1000)dialog(urlDecoder(urlEncoder("触动精灵"))) -- 解码
| 参数 | 类型 | 说明 |
|---|---|---|
| 应用 ID bid | string | 必填,应用 Bundle ID |
| 返回值 | 类型 | 说明 |
|---|---|---|
| 应用名 name | string | bid 对应的应用名称 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下getAppName("com.tencent.xin") --获取com.tencent.xin的应用名称,该函数只支持苹果 iOS 系统
注意事项:
该函数只支持苹果 iOS 系统
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下getUserApp() --该函数只支持苹果 iOS 系统
注意事项:
该函数只支持苹果 iOS 系统
| 参数 | 类型 | 说明 |
|---|---|---|
| str | string | 必填,要被分割的字符串 |
| symbol | string | 选填,分割的依据,不填写默认'@' |
| pos | numebr | 选填,起始分割位置,缺省默认值1 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| data | table | 分割后形成的表 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下str="1@2@3"symbol="@"pos=3data = strSplit(str,symbol,pos) --data = {1,2,3}dialog(data[1])
| 参数 | 类型 | 说明 |
|---|---|---|
| url | string | 必填,请求的网页地址url |
| 返回值 | 类型 | 说明 |
|---|---|---|
| webdata | string | 网页内容 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下webdata = httpGet("http://www.baidu.com/")--获取百度首页网页数据dialog(webdata)
| 参数 | 类型 | 说明 |
|---|---|---|
| url | string | 必填,访问的网页地址 url |
| data | string | 必填,要提交的 Post 参数数据 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| str | string | 网页内容 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下local url = "http://openapi.touchsprite.com/api/openapi"local data = [[{"action": "getAuth","key": "开发者的key","devices": {"设备号1"},"valid": 3600,"time": ]].. os.time() ..[[}]]dialog(httpPost(url, data))
| 返回值 | 类型 | 说明 |
|---|---|---|
| ip | string | ip地址 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下ip = getNetIP() --获取IPdialog(ip)
| 参数 | 类型 | 说明 |
|---|---|---|
| String | string | 要输入的文本 |
脚本实例:
输入欢迎文本并发送
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下inputStr("Welcome"); --在输入框中输入字符串"Welcome",此函数仅适用于 iOS 系统
注意事项:
- inputText 输入无效时可尝试使用该函数
- 该输入函数可能会影响剪贴板中数据
- 此函数仅适用于 iOS 系统
- 要使用此函数请将函数库文件升级到最新版本,否则可能会报错 keyDown 为空值
| 参数 | 类型 | 说明 |
|---|---|---|
| String | string | 输要入的文本 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| num | number | 字符串数量数 |
脚本实例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下num = getStrNum("计算str");dialog(num,0) --返回 5
| 返回值 | 类型 | 说明 |
|---|---|---|
| 随机数字 rnum | number | 随机范围的整数,每次获取数字不同 |
脚本实例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下math.randomseed(getRndNum()) -- 随机种子初始化真随机数num = math.random(1, 100) -- 随机获取一个1-100之间的数字
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标 x1 | number | 选填,缺省默认值 0,截取区域左上角横坐标 |
| 坐标 y1 | number | 选填,缺省默认值 0,截取区域左上角纵坐标 |
| 坐标 x2 | number | 选填,缺省默认值 0,截取区域右下角横坐标 |
| 坐标 y2 | number | 选填,缺省默认值 0,截取区域右下角纵坐标 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下snapAndSave(233,233,555,555)--该函数只支持苹果 iOS 系统,缺少任一参数则默认全屏截图
注意事项:
- 该函数只支持苹果 iOS 系统
- 缺少任一参数则默认全屏截图。
| 参数 | 类型 | 说明 |
|---|---|---|
| tmp | table | 必填,将要被复制的表 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| result | table | 复制后的表 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下a={1,2,3}result=deepCopyTable(a)
脚本实例:
弹出许可协议,若不同意则退出脚本
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下ret = dialogRet("许可协议\n协议内容", "同意", "不同意", 0, 0);if ret == 0 then --如果按下"同意"按钮init("0",0); --开始初始化elseluaExit(); --否则退出脚本end
注意事项:
- 区别于lua_exit,如果lua_exit退出无效可使用该函数。
| 返回值 | 类型 | 说明 |
|---|---|---|
| render | number | 设备的 render 值 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下render=getRender()--该函数只支持苹果 iOS 系统
注意事项:
该函数只支持苹果 iOS 系统
| 参数 | 类型 | 说明 |
|---|---|---|
| dayTable | table | 必填,指定的日期的年月日分别对应表的 year 域,month 域,day 域 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| flag | boolean | 判断结果 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下flag=isDay({year=2016,month=2,day=16})--判断是否是2016年2月16日
模块说明
- 该清理类函数仅限苹果 iOS 系统使用
- 数据清理不可逆转,请谨慎使用
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下clearAllPhotos()--该函数只支持苹果 iOS 系统
注意事项:
该函数只支持苹果 iOS 系统
| 参数 | 类型 | 说明 |
|---|---|---|
| info | number | 选填,默认使用新版清理钥匙串功能,如果类型写 1,则调用 v1.2.0 版本清理钥匙串功能 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下clearAllKeyChains()--该函数只支持苹果 iOS 系统
注意事项:
该函数只支持苹果 iOS 系统
| 参数 | 类型 | 说明 |
|---|---|---|
| info | string或table | 选填,默认全部清理,指定生成设备的 IDFA 和 IDFA 信息 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| strIdfav | string | 设备原来的 IDFA 和 IDFV 信息 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下str1 = clearIDFAV() --清空信息,该函数只支持苹果 iOS 系统mSleep(500)str2 = clearIDFAV(str1) --清空信息并将备份信息写入dialog(str1.."\n"..str2, 0)
注意事项:
- 参数 info 类型可以是字符串或数组,或nil。参数请严格按照返回信息格式
- 返回值 strIdfav 获取成功返回设备信息,设备信息为空返回 0 或 1
- 该函数只支持苹果 iOS 系统
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下clearPasteboard()--该函数只支持苹果 iOS 系统
注意事项:
该函数只支持苹果 iOS 系统
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下clearCookies()--该函数只支持苹果 iOS 系统
注意事项:
该函数只支持苹果 iOS 系统
| 参数 | 类型 | 说明 |
|---|---|---|
| UITable | table | 必填,需要检测的UItable |
| 返回值 | 类型 | 说明 |
|---|---|---|
| UIjson | string | 可以给showUI函数使用的json |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下MyTable = { --这是一个错误的 UItable,并且错的离谱["style"] = "default",["width"] = w,["height"] = h,["config"] = "save_01.dat",["timer"] = 99,["orient"] = 0,["pagetype"] = "multi",["title"] = "触动精灵脚本配置",["cancelname"] = "取消",["okname"] = "开始",pages ={{{["type"] = "Label",["text"] = "第一页设置",["size"] = "25",["align"] = "center",["color"] = "0,0,0",},{["type"] = "RadioGroup",["list"] = "选项1,选项2,选项3,选项4,选项5,选项6,选项7",["select"] = "1",},},{{["type"] = "Label",["text"] = "第二页设置",["size"] = 25,["align"] = "center",["color"] = "0,0,0",},{["type"] = "Edit",["prompt"] = "请输入一个字母",["text"] = "默认值",["kbtype"] = "ascii",},{["type"] = "Edit",["prompt"] = "请输入一个数字",["text"] = "默认值",["kbtype"] = "number",},},{{["type"] = "Label",["text"] = 1,["size"] = 25,["align"] = "center",["color"] = "0,0,0",},{["type"] = "CheckBoxGroup",["list"] = "选项1,选项2,选项3,选项4,选项5,选项6,选项7",["select"] = "3@5",},{["type"] = "ComboBox",["list"] = "选项1,选项2,选项3",["select"] = 1,["data"] = "子选项1,子选项2,子选项3,子选项4#子选项5,子选项6,子选项7#子选项8,子选项9",["source"] = "test"},{["type"] = "ComboBox",["select"] = "1",["dataSource"] = "test"},}}}showUI(checkTable(MyTable))
注意事项
程序将会报错,并回报以下错误:
1. 第 1 页第 1 个控件 size 属性错误
2. 第 3 页第 1 个控件 text 属性错误
3. 第 3 页第 3 个控件 select 属性错误
有些控件并没有检测,这个函数只是检测会引起服务崩溃的控件,如果通过了检测却造成设备进入安全模式,请反馈给QQ 288562893。
| 返回值 | 类型 | 说明 |
|---|---|---|
| mode | string | 当mode为'New'时则表示2.26及以后版本的新UI,当mode为'Old'时则表示2.26以前版本的UI |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下mode=getMode()--该函数只支持苹果 iOS 系统
注意事项:
该函数只支持苹果 iOS 系统
| 参数 | 类型 | 说明 |
|---|---|---|
| Table | table | 必填,UI表 |
| Explist | number | 必填,变量列表 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| 用户确认情况 ret | number | 1 - 确认;0 - 取消 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下local MyTable = {["style"] = "default",["width"] = w,["height"] = h,["config"] = "save_01.dat",["timer"] = 99,["orient"] = 0,["pagetype"] = "multi",["title"] = "触动精灵脚本配置",["cancelname"] = "取消",["okname"] = "开始",pages ={{{["type"] = "Label",["text"] = "第一页设置",["size"] = 25,["align"] = "center",["color"] = "0,0,0",},{["type"] = "RadioGroup",["list"] = "男,女,人妖",["select"] = "1",},}}}--以table的书写UI,这在手册中的showUI中有详细说明local Explist={'sex'}--控件的返回值用变量去接受,在这个模式下,将会返回值而非序号ret=neosUI(MyTable,Explist)
注意事项:
1.Explist 需要按照控件顺序返回,并且返回的是具体的值。例:如果用户选择男,那么 sex 这个全局变量的值就是字符串'男'
2.Explist 中变量名的数量必须严格与控件返回数量对应,如果是多选框那么这个变量是一个 table 类型,并且这个 table 是一个数组;其余全为 string 类型
使用说明
- 本 UI 函数需要触动 iOS 引擎版本 v2.3.5, 安卓引擎版本 v2.0 以上支持
- 控件支持 table 格式传入,请看例子对比
- 宽度默认不写是一行,如果自己要写的话,一行的默认数值为:-1
- 便捷 UI 的使用分为三步,初始化UI:UINew(),添加自定UI控件,让UI显示:UIshow()。
- UI 的取值直接通过控件变量名来获取,返回值为选项名,多选项记得填写多个变量
- 如果需要创建多个页面,只需要在控件最前面加上页数,默认不写表示在第一页
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 页数 pagination | number | 选填,显示的脚本配置页数 | 1 |
| 标题 titles | string | 选填,多页多标题之间用英文半角逗号分割 | "脚本配置" |
| 确定文字 okname | string | 选填,UI底部右侧文字 | "开始" |
| 取消文字 cancelname | string | 选填,UI底部左侧文字 | "取消" |
| 配置文件 config | string | 选填,保存配置到该文件 | "uiconfig.dat" |
| UI 方向 orient | number | 选填。0-向下;1-向右;2-向左,仅支持 iOS | 0 |
| 倒计时 timer | number | 选填,倒计时完成自动开始 | 120 |
| 控件宽度 width | number | 选填 | 屏幕宽 |
| 控件高度 height | number | 选填 | 屏幕高 |
| 背景颜色 bgcolor | string | 选填,使用 RGB 十进制数值,以英文半角逗号分割 | "0,0,0" |
| 按钮背景色 btnbkcolor | string | 选填,使用 RGB 十进制数值,以英文半角逗号分割 | "0,0,0" |
| 界面的背景图片 bg | string | 选填,相对路径为 res 目录,可填写绝对路径 | - |
| 分页指示样式 pagenumtype | string | 选填,dot - 小圆点;number - 数字;default - 不显示 | "default" |
| 多页模式默认停留的页面 selpage | number | 选填 | 1 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下w,h = getScreenSize()UINew("我的脚本","运行脚本","退出脚本","uiconfig.dat",0,120,w*0.9,h*0.9,"255,231,186","255,231,186") --方式一,宽高为屏幕的 90%UIShow()
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下w,h = getScreenSize()UINew({titles="我的脚本",okname="运行脚本",cancelname="退出脚本"}) --方式二UIShow()
注意事项:
- 可选参数如果写部分的话,该参数前的所有参数都必须需要填写,否则会报错。其他控件也一样
- 标题 titles,如果每页标题显示不一样该项请用逗号隔开,如:"标题1,标题2,标题3"
- 函数有两种传入方式,普通和 table 方式,table 方式可选择性写入
- 函数方法内没有的参数,可以用 table 方式实现
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UIShow() --显示 UI,UI 设置完成记得加上该函数,不然不能创建显示
注意事项:
- UI 设置完成记得加上该函数,不然不能创建显示
- 选择退出默认自动退出脚本,如果需要自己处理,参数填 0,点取消返回值为 0,确定返回 1
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 文字标题 text | string | 必填 | - |
| 字体大小 size | number | 选填 | 15 |
| 对齐方式 align | string | 选填,左对齐 left,右对齐 right,居中 center | "left" |
| 文字颜色 color | string | 选填,使用RGB十进制数值,以英文半角逗号分割 | "0,0,255" |
| 控件宽度 width | number | 选填,默认-1为一行,自定义宽度可写其他数值 | -1 |
| 下控件换行 nowrap | number | 选填,当此属性为 1 时,将指定下一个控件不换行 | 0 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UILabel("我的第一个脚本",15,"left","255,0,0",-1,0) --宽度写-1为一行,自定义宽度可写其他数值UIShow()--可选参数如果写部分的话,该参数前的所有参数都必须需要填写,否则会报错
注意事项:
- 本函数无返回值,只作文字显示
- 标签支持多行显示,在字符串中插入 \n 可以进行换行,例如:\"测试\n测试 1\n测试 2"
| 参数 | 功能 | 类型 | 说明 |
|---|---|---|---|
| 变量名 id | string | 必填 | - |
| 提示内容 prompt | string | 必填 | - |
| 文本内容 text | string | 必填,编辑框默认内容 | - |
| 文本大小 size | number | 选填 | 15 |
| 文本对齐 align | string | 选填,左对齐 left,右对齐 right,居中 center | "left" |
| 文本颜色 color | string | 选填,使用RGB十进制数值,以英文半角逗号分割 | "0,0,255" |
| 键盘类型 kbtype | string | 选填,类型有number ascii default三种 |
"default" |
| 控件宽度 width | number | 选填,默认 -1 为一行,自定义宽度可写其他数值 | -1 |
| 下控件换行 nowrap | string | 选填,当此属性为 1 时,将指定下一个控件不换行 | 0 |
| 高度 height | number | 选填,支持 iOS v2.4.5-3, Android v2.3.3.2 及其以上版本,Android 为默认高度,此参数 Android 写入数值不生效 | - |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UITextArea("选项","选项","测试",15,"left","0,0,255","default",-1,"0",40)UIShow()--可选参数如果写部分的话,该参数前的所有参数都必须需要填写,否则会报错
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 变量名 id | string | 必填 | - |
| 单选项 list | string | 必填,多个可选项目之间用英文半角逗号分割 | - |
| 选中项 select | string | 选填,需填写选项编号,选项1编号为 0,选项2为 1,依次类推 | "0" |
| 控件宽度 width | number | 选填,默认 -1 为一行,自定义宽度可写其他数值 | -1 |
| 下控件换行 nowrap | number | 选填,当此属性为 1 时,将指定下一个控件不换行 | 0 |
| 图片项 images | string | 选填,可以和 list 属性同时使用,多个图片资源用英文半角逗号分割 | - |
| 图片缩放 scale | number | 选填,范围 0 - 1 | 1 |
| 单行控件显示数量 countperline | number | 选填,Android 默认 1 行显示 1 个控件,iOS 控件总宽度超过屏幕宽度则堆积在一起,引擎版本支持 iOS v3.00-157 及 Android v2.3.6 及其以上版本,仅支持函数库 v1.2.4 及其以上版本 | - |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UIRadio("rdo","选项1,选项2,选项3,选项4,选项5,选项6","1",-1,0,userPath().."/res/1.png",1,5)--6 个单选选项,默认选择选项 2UIShow()if rdo == "选项1"then--返回值为字符型toast("选项1")elseif rdo == "选项2" thentoast("选项2")elseif rdo == "选项3" thentoast("选项3")elseif rdo == "选项4" thentoast("选项4")elseif rdo == "选项5" thentoast("选项5")elsetoast("选项6")end
注意事项:
- 可选参数如果写部分的话,该参数前的所有参数都必须需要填写,否则会报错
- 返回值为选项名,选中第一个的话,返回 rdo == "选项1",依此类推
- 选中项 sel 需填写选项编号,选项1 编号为 0,选项 2 为 1,依次类推
- 由于单选为非此即彼的选择,返回值判断需要用到 if...then...elseif...then...else...then...end 判断语句
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 变量名 id | string | 必填 | - |
| 提示内容 prompt | string | 必填 | - |
| 文本内容 text | string | 必填,编辑框默认内容 | - |
| 文本大小 size | number | 选填 | 15 |
| 文本对齐 align | string | 选填,左对齐 left,右对齐 right,居中 center | "left" |
| 文本颜色 color | string | 选填,使用RGB十进制数值,以英文半角逗号分割 | "0,0,255" |
| 键盘类型 kbtype | string | 选填,类型有number ascii default三种 |
"default" |
| 控件宽度 width | string | 选填,默认-1为一行,自定义宽度可写其他数值 | -1 |
| 下控件换行 nowrap | string | 选填,当此属性为 1 时,将指定下一个控件不换行 | 0 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UIEdit("edt","测试","test",15,"left","255,0,0")--返回值为字符串,若文本框内容为:测试,则返回 edt == "测试"UIShow()
返回值
if edt == "测试" thentoast("您输入的文字是:测试")end
注意事项:
- 可选参数如果写部分的话,该参数前的所有参数都必须需要填写,否则会报错
- 返回值为字符串,若文本框内容为:测试,则返回 edt == "测试"
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 变量名 id | string | 必填,多个可选项目之间用英文半角逗号分割 | - |
| 单选项 list | string | 必填,确定与变量名的项目数相同 | - |
| 选中项 select | string | 选填,需填写选项编号,选项1 编号为 0,选项2 为 1,依次类推;填写多个时以 @ 分割 | "0" |
| 控件宽度 width | number | 选填,默认 -1 为一行,自定义宽度可写其他数值 | -1 |
| 下控件换行 nowrap | number | 选填,当此属性为 1 时,将指定下一个控件不换行 | 0 |
| 图片项 images | string | 选填,可以和 list 属性同时使用,多个图片资源用英文半角逗号分割 | "" |
| 图片缩放 scale | number | 选填,范围 0 - 1 | 1 |
| 单行控件显示数量 countperline | number | 选填,Android 默认 1 行显示 1 个控件,控件将会按照此参数设置的数量平均分配屏幕宽度后显示;iOS 默认 1 行显示 1 个控件,控件总宽度超过屏幕宽度后会导致部分控件无法显示,引擎版本支持 iOS v3.00-157 及 Android v2.3.6 及其以上版本,仅支持函数库 v1.2.4 及其以上版本 | 1 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UICheck("check1,check2,check3","选项1,选项2,选项3","0@1",-1,0,userPath().."/res/1.png",1,1)--默认选项:选项1 和选项2UIShow()if check1 == "选项1" thendialog("您选择了1")endif check2 == "选项2" thendialog("您选择了2")endif check3 == "选项3" thendialog("您选择了3")end
注意事项:
1.可选参数如果写部分的话,该参数前的所有参数都必须需要填写,否则会报错
2. 返回值为字符串,选中第一个和第二个的话,则:check1 == "选项1",check2 == "选项2",依此类推。
3. 有多少个选项需要创建多少个变量来赋值,没有选中的变量为 nil。
4. 由于多选框为允许并存的选择,判断返回值需要用到多个 if...then..end 判断语句
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 变量名 id | string | 必填 | - |
| 选择项 list | string | 必填,多个可选项目之间用英文半角逗号分割 | - |
| 选中项 select | string | 选填,需填写选项编号,选项1 编号为 0,选项2 为 1,依次类推 | "0" |
| 控件宽度 width | number | 选填,默认-1为一行,自定义宽度可写其他数值 | -1 |
| 下控件换行 nowrap | number | 选填,当此属性为 1 时,将指定下一个控件不换行 | 0 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UICombo("name","下拉框1,下拉框2,下拉框3")--默认选择:下拉框1UIShow()
返回值
if name == "下拉框1" then--返回值为字符型toast("下拉框1")elseif name == "下拉框2" thentoast("下拉框2")elsetoast("下拉框3")end
注意事项:
- 返回值为字符串,选中第一个的话,返回 name == "下拉框1"
- 由于下拉框为非此即彼的选择,返回值判断需要用到 if...then...elseif...then...else...then...end 判断语句
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 变量名 id | string | 必填 | - |
| 选择项 list | string | 必填,多个可选项目之间用英文半角逗号分割 | - |
| 关联项 data | string | 必填,联动关联框选项,选择项有几项,需要用#号分割成几项 | - |
| 标志名 source | string | 必填,与UIComboRlts 的dataSource通过一致的字符串保证匹配 | |
| 选中项 select | string | 选填,需填写选项编号,选项1 编号为 0,选项2 为 1,依次类推 | "0" |
| 控件宽度 width | number | 选填,默认-1为一行,自定义宽度可写其他数值 | -1 |
| 下控件换行 nowrap | number | 选填,当此属性为 1 时,将指定下一个控件不换行 | 0 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UIComboRlt("name1,name2","选项1,选项2,选项3","子选项1,子选项2,子选项3,子选项4#子选项5,子选项6,子选项7#子选项8,子选项9","test")--可选参数如果写部分的话,该参数前的所有参数都必须需要填写,否则会报错UIShow()
注意事项:
- 联动框第一个变量名请填写两个变量名,第二个变量名与关联框的变量名一致。否则会出现取值不对的问题
- 返回值为字符串,联动框选择第二个,关联框选择第一个,则返回 name1 == "选项2",name2 == "子选项5"。
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 变量名id | string | 必填 | - |
| 标志项dataSource | string | 必填,与UIComboRlts的source通过一致的字符串保证匹配 | - |
| 选中项select | string | 选填 | "0" |
| 控件宽度width | number | 选填,默认-1为一行,自定义宽度可写其他数值 | -1 |
| 下控件换行nowrap | number | 选填,当此属性为 1 时,将指定下一个控件不换行 | 0 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UIComboRlts("name2","test")--请保证变量名与标志项与联动框一致,返回值已通过联动框获取UIShow()
注意事项:
- 请保证变量名与标志项与联动框一致
- 返回值已通过联动框获取
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 图片路径way | string | 必填,可以是本地路径或者网络路径 | - |
| 对齐方式align | string | 选填,左对齐 left,右对齐 right,居中 center | "center" |
| 图片缩放scale | number | 选填,范围0 - 1 | 1 |
| 控件宽度width | number | 选填,默认-1为一行,自定义宽度可写其他数值 | -1 |
| 下控件换行nowrap | number | 选填,当此属性为 1 时,将指定下一个控件不换行 | 0 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下UINew()UIImage("http://www.baidu.com/img/bdlogo.png") --创建一个图片框,默认居中对齐,图片不缩放,宽度默认一行,下一控件不换行--可选参数如果写部分的话,该参数前的所有参数都必须需要填写,否则会报错UIShow()
注意事项:
- 无返回值,只做图片显示
- 触动精灵 iOS 默认图片资源路径为 /var/mobile/Media/TouchSprite/res,触动精灵安卓默认路径为 sdcard/TouchSprite/res
- 小精灵 iOS 默认图片资源路径为 /var/mobile/Media/程序唯一标识/res,触动精灵安卓默认路径为 sdcard/程序唯一标识/res
使用了 table 格式和一般格式两种,可根据自己需要使用哪一种或者两种同时使用,多页 UI 只需在前面写数字页数,不写默认布局到第一页。
require "TSLib"--使用函数库一定要在最前面调用并将函数库文件发送到手机 lua 目录w,h = getScreenSize()UINew(2,"第一页,第二页","开始","取消","uiconfig.dat",0,120,w*0.8,h*0.8,"221,240,237","88,210,232")UIImage(2,"http://www.baidu.com/img/bdlogo.png")UILabel({text="单选框设置:"})UIRadio({id="radio",list="单选1,单选2,单选3,单选4,单选5,单选6"})UILabel(2,"下拉框设置:")UICombo({num=2,id="combo",list="下拉框1,下拉框2,下拉框3,下拉框4,下拉框5,下拉框6"})UILabel("多选框设置:")UICheck("check1,check2,check3,check4,check5,check6","多选1,多选2,多选3,多选4,多选5,多选6")UILabel("联动框设置:")UIComboRlt("comborle,comborles","选项1,选项2,选项3","子选项1,子选项2,子选项3,子选项4#子选项5,子选项6,子选项7#子选项8,子选项9","test")UILabel("关联框设置:")UIComboRlts("comborles","test")UIShow()dialog("单选框选择:"..radio.."\n".."下拉框选择:"..combo.."\n".."联动框选择:"..comborle.."\n".."关联框选择:"..comborles, 0)dialog("多选框结果:".."\ncheck1="..tostring(check1).."\ncheck2="..tostring(check2).."\ncheck3="..tostring(check3).."\ncheck4="..tostring(check4).."\ncheck5="..tostring(check5).."\ncheck6="..tostring(check6), 0)
UI效果图:


注意事项:
- 支持触动精灵 iOS 和安卓版,需扩展库 v1.1.5 以上版本,区别于官方打码
- 触动小精灵使用此打码库需要勾选
网络插件类型- 如果函数返回 false 都为网络错误超时
- 扩展库支持如下打码平台:
- https://www.jsdati.com/ --联众(仅支持函数库 v1.2.4 及其以上版本)
- http://www.chaorendama.com/ --QQ 超人
- 出现多次打码或者平台有结果脚本返回空的情况,请延长超时时间参数
- 不支持帮你玩
| 参数 | 类型 | 说明 |
|---|---|---|
| 平台platform | string | 必填,目前支持平台 lianzhong、 qqchaoren |
| 用户名username | string | 必填 |
| 密码password | string | 必填 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下ocrInfo("lianzhong","username","password")
| 返回值 | 类型 | 说明 |
|---|---|---|
| bool | boolean | 正确返回 true,错误返回 nil |
| bal | string | 正确返回余额,错误返回错误信息 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下ocrInfo("lianzhong","username","password")--先初始化bool,bal=ocrBalance()if bool thendialog(bal,0)elsedialog(bal,0)end
| 参数 | 类型 | 说明 |
|---|---|---|
| 坐标x1,y1 | number | 区域左上角坐标 |
| 坐标x2,y2 | number | 区域右下角坐标 |
| 打码类型 type | number | 对应打码官网查询,QQ 超人填写任意数字 |
| 超时处理 timeout | number | 默认超时 60 秒 |
| 缩放比例 scale | number | 范围 0 - 1,默认 1,值越小图片质量越低,不影响图片大小 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| text | string.boolean | 正确返回打码结果,错误返回 nil |
| tid | string | 正常返回 id,错误返回错误信息 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下ocrInfo("lianzhong","username","password")--先初始化text,tid = ocrScreen(100,100,200,200,103,30,1)
注意事项:
id 可用于打码提交错误识别
| 参数 | 类型 | 说明 |
|---|---|---|
| 图片路径 path | string | 需要打码图片的路径,默认触动 res 目录,支持绝对路径 |
| 打码类型 type | number | 对应打码官网查询,QQ 超人填写任意数字 |
| 超时处理 timeout | number | 默认超时 60 秒 |
| 缩放比例 scale | number | 范围 0 - 1,默认 1,值越小图片质量越低,不影响图片大小 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| text | string.boolean | 正确返回打码结果,错误返回 nil |
| tid | string | 正常返回 id,错误返回错误信息 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下ocrInfo("lianzhong","username","password")--先初始化text,tid = ocrImage("img.png",103,30,1)
| 参数 | 类型 | 说明 |
|---|---|---|
| 打码返回id | string | 打码成功会返回,默认传入最后一次打码 id,该参数一般不写 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| bool | boolean | 正确返回 true,错误返回 nil |
| tid | string | 返回的信息状态,一般不需获取 |
脚本示例:
require "TSLib"--使用本函数库必须在脚本开头引用并将文件放到设备 lua 目录下ocrInfo("lianzhong","username","password")--先初始化bool = ocrReportError()if bool thendialog("提交成功",0)end
注意事项:
id 可用于打码提交错误识别
| 参数 | 类型 | 说明 |
|---|---|---|
| ent_name | string | 设备别名 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| bool | boolean | 成功返回true,失败返回false |
脚本示例:
ts_enterprise_lib = require("ts_enterprise_lib")assert(ts_enterprise_lib,"无法引入企业专用库")require("TSLib")--数据中心创建分类local category = "设备别名记录"local ok,ret1,ret2 = ts_enterprise_lib:plugin_api_call("DataCenter","add_category",category)if ok thendialog("创建成功",5)elsedialog("创建失败 : " .. ret1)endlocal device_alias = ""dialog("开始设置,请等待结束提示.")local ok,ret1,ret2 =ts_enterprise_lib:plugin_api_call("DataCenter","get_remain_count",category)if ok thenif ret1 then--A 为设备别名的开头,可以写为空或者其他文字--0000 的数量和 -4 是对应的,就是数字后边是 4 位,如果想设置后边数字的位数,请自行填写--这样设备别名就为 A0001、A0002、A0003...device_alias = "A" .. string.sub("0000" .. (tonumber(ret2)+1),-4)elsedialog("get_remain_count 失败:"..ret2)endelsedialog("get_remain_count 失败:"..ret1)endlocal data_table = [[{"device_id":"]] .. getDeviceID() .. [[","device_name":"]] .. getDeviceName() .. [[","device_alias":"]] .. device_alias .. [["}]]local ok,ret1,ret2 = ts_enterprise_lib:plugin_api_call("DataCenter","insert_data",category,data_table)if ok thenif ret1 thensetDeviceAlias(device_alias)--需要等 设置成功,继续下一台设备 弹框显示后再进行下一台设备操作dialog("设置成功,继续下一台设备.",3)elsedialog("insert_data 失败:"..ret2)endelsedialog("insert_data 失败:"..ret1)end--运行成功后点击重连即可
函数名称:高级变量监控
函数功能:基于变量监控的进阶用法
函数方法
local ok,msg = PACVM("add",{["q1"] = 1,["q2"] = 2,["q3"] = 3,["q4"] = 4})
| 参数 | 类型 | 说明 |
|---|---|---|
| type | string | 操作类型 支持:add,del,set,get |
| data | table | 变量监控数据列表,type==get 时无需填此参数 |
| 返回值 | 类型 | 说明 |
|---|---|---|
| bool | boolean | 增加成功 - true,增加失败 - false,type==get 时成功与否都返回 table |
| msg | string | 失败原因 |
脚本示例:
ts_enterprise_lib = require("ts_enterprise_lib")assert(ts_enterprise_lib,"无法引入企业专用库")require("TSLib")dialog(TSVersions(),3)local ok,msg = PACVM("add",{["q1"] = 1,["q2"] = 2,["q3"] = 3,["q4"] = 4})dialog(ok and "add 成功" or "add 失败:"..msg)local ok,msg = PACVM("del",{"q2","q3"})dialog(ok and "del 成功" or "set 失败:"..msg)local ok,msg = PACVM("set",{["q1"] = 11,["q4"] = 44,["q5"] = 55})dialog(ok and "set 成功" or "set 失败:"..msg)local ts = require("ts")local json = ts.jsondialog(json.encode(PACVM("get")), 0);
注意事项:
- add 清空当前数据变量并把 data 中参数设置进去
- del 删除指定的列名与参数
- set 把 data 中参数设置进去,如果没有此列名就新建列名
- get 以 table 格式返回变量监控的内容
- add,set 的 data 格式是{["q1"] = 1,["q2"] = 2,["q3"] = 3,["q4"] = 4}
- del 的 data 格式是{"q2","q3"}
- get 没有 data 参数
如果您安装了以下插件导致触动精灵服务使用异常,请在Cydia 中卸载该插件后重新安装客户端。
Stashing(内存修正插件)
会导致帮你玩无法注册和登录账号,提示文件获取失败
StatusHUD2 插件
会导致脚本showUI无法弹。
FakeGPS/易天行(伪装地理位置插件)
会导致点击失效或服务无法启动
CCSettings(修改美化控制中心插件)
会导致脚本showUI无法弹出
协奏助手
会导致点击失效
按键精灵iOS
会导致UI弹出后点击【取消】【确定】无反应
xxplugin - coc/cok(xxplugin 系列插件)
会导致点击失效或服务无法启动
XY苹果助手
会导致点击失效或服务无法启动
| 函数名 | 描述 | 示例 | 结果 |
|---|---|---|---|
| pi | 圆周率 | math.pi | 3.1415926535898 |
| abs | 取绝对值 | math.abs(-2012) | 2012 |
| ceil | 向上取整 | math.ceil(9.1) | 10 |
| floor | 向下取整 | math.floor(9.9) | 9 |
| max | 取参数最大值 | math.max(2,4,6,8) | 8 |
| min | 取参数最小值 | math.max(2,4,6,8) | 2 |
| pow | 计算x的y次幂 | math.pow(2,16) | 65536 |
| sqrt | 开平方 | math.sqrt(65536) | 256 |
| modf | 取整数和小数部分 | math.modf(20.12) | 20 0.12 |
| randomseed | 设随机数种子 | math.randomseed(os.time()) | |
| random | 取随机数 | math.random(5,90) | 5 ~ 90 |
| rad | 角度转弧度 | math.rad(180) | 3.1415926535898 |
| deg | 弧度转角度 | math.deg(math.pi) | 180 |
| exp | e的x次方 | math.exp(4) | 54.598150033144 |
| log | 计算x的自然对数 | math.log(54.598150033144) | 4 |
| log10 | 计算10为底,x的对数 | math.log10(1000) | 3 |
| frexp | 将参数拆成 x * (2 ^ y) 的形式 | math.frexp(160) | 0.625 8 |
| ldexp | 计算x * (2 ^ y) | math.ldexp(0.625,8) | 160 |
| sin | 正弦 | math.sin(math.rad(30)) | 0.5 |
| cos | 余弦 | math.cos(math.rad(60)) | 0.5 |
| tan | 正切 | math.tan(math.rad(45)) | 1 |
| asin | 反正弦 | math.deg(math.asin(0.5)) | 30 |
| acos | 反余弦 | math.deg(math.acos(0.5)) | 60 |
| atan | 反正切 | math.deg(math.atan(1)) | 45 |
[2018-08-15]v1.2.6
[2018-08-15] v1.2.5:
[2018-03-20] v1.2.1:
[2017-09-15] v1.2.0:
※触动精灵iOS v2.4.4已内置
※触动精灵Android v2.2.7已内置
※帮你玩iOS v1.2.5已内置
※帮你玩Android v1.0.9已内置
※企业版iOS v1.3.6已内置
※企业版Android v1.0.4已内置
※触动精灵iOS v2.4.3已内置
※触动精灵Android v2.2.6已内置
[2016-12-27] v1.1.7:
[2016-06-14] v1.1.2: