触动精灵

介绍

基本概念

Json

Json是一种交互式的数据格式。在json中:

  • {}代表对象
  • []代表数组
  • ""代表属性或值
  • :表示归属

tabletojson

在lua中,

  • {}代表table
  • []代表了索引
  • =代表了赋值语句

界面交互

在我们的Uitable中将必须存在两个大的主键,分别为样式style和管理控件的views,在style中,我们可以管理UI模式等,在view中我们将会决定UI的显示、输入、选择等等。

style 表示界面样式,

  • default(默认)
  • custom(自定义)

views(不需要使用字符串索引形式)数组包含了界面上的控件。

width和height分别制定了界面的宽和高(像素pixels),请注意宽度不得低于400pixels,高度不得低于120pixels。

bg 指定界面的背景图片,相对路径为res资源目录,可填写绝对路径。

okname 指定地步确认按钮上显示的文字。

cancelname 指定地步取消按钮上显示的文字。

config 表示自动配置文件名,如果存在此键名,则用户点击确认时保存配置到指定文件中。 如果配置文件存在,调用该界面会自动载入该文件中的配置,如果更新了UI代码后必须要删除旧的配置文件才会正常显示。

timer 指定界面在自动配置文件存在的情况下,自动确认UI输入。 注意使用此属性必须要设定config属性,第一次存储配置文件不存在时,此属性不生效,当配置文件存在时,此属性会在生成UI上进行倒计时,同时用户也可以点击闹钟图标取消倒计时。

界面控件被定义在views数组中。而自定义界面一共有七种控件类型type:

  • 标签Label
  • 单选框RadioGroup
  • 编辑框Edit
  • 多选框CheckBoxGroup
  • 下拉框ComboBox
  • 图片Image

标签Label一共有4种属性:

  • 文本/标题/text 必填,一般来用显示说明文字或者标题,该控件没有任何返回值,只用作显示。
  • 数值/字体大小/size 如果不指定该属性,则默认值为15。
  • 文本/对齐方式/align 对齐方式aligh可取值为:左对齐left、右对齐right、居中center。
  • 文本/字体颜色/color 字体颜色color则使用RGB十进制数值,以英文半角逗号分隔。 此类型可支持多行显示,在字符串中插入,例如:“测试12”

单选框RadioGroup一共有两种属性:

  • 文本/可选项目标题/list 可选项目标题list用你英文半角逗号分隔
  • 文本/默认选中项编号/select 默认选中项编号select只允许填写一个,序号从0开始,与可选项目标题中的顺序保持一致。

编辑框Edit一共有六种属性:

  • 文本/编辑框提示文本/prompt 编辑框提示文本prompt为编辑框中无任何内容时显示的底色文本。
  • 文本/编辑框默认内容/text 界面载入时已经存在于编辑框中的文本。
  • 数值/字体大小/size
  • 文本/对齐方式/align
  • 文本/字体颜色/color
  • 文本/键盘类型/kbtypc

多选框CheckBoxGroup,又称作检查框,一共有两种属性:

  • 文本/可选项目标题/list
  • 文本/默认选中项编号/select 默认选中项编号select允许填写一个或多个,填写多个时以@分割编号。

下拉框ComboBox,一共有五种属性:

  • 文本/可选项目标题/list
  • 文本/默认选中项编号/select
  • 文本/两个ComboBox控件建立数据关联时的下级选项/data
  • 文本/两个ComboBox控件建立数据关联时的上级数据源名称/source
  • 文本/两个ComboBox控件建立数据关联时的下级数据源名称/dataSource

默认选中项目编号select只允许填写一个,序号从0开始(此控件需触动2.1.3以上版本支持)。 上一级的必须要有data里面#分隔的个数保持一致,上一级的source和下一级的dataSource要保持一致,使用了dataSource就不可以使用list(data、source、dataSource属性需触动 2.1.8以上版本支持)

图片Image,放置一个图片到UI上,属性:

  • 路径/插入图片的路径/src 可以是本地路径或者网络路径。

基础函数

初始化

函数功能

脚本使用触摸函数前必须调用,以指定应用程序及坐标系。 ### 函数方法

1
init(文本型bid,整数型rotate);

返回值

无。

特殊注意

init函数实际是以屏幕左上角为原点建立笛卡尔坐标系(平面直角坐标系),而bid这个参数十分重要,当然,如果不考虑切换应用等操作,可以使用默认字符串形式的"0",即为当前界面。 Rotate 旋转的意思,这个参数需要0,1,2这三个数字,屏幕方向:

  • 0-竖屏
  • 1-Home键在右边
  • 2-Home键在左边

延时

函数功能

发送系统等待事件。

函数方法

1
mSleep(整数型interval);

返回值

无。 ### 特殊说明 interval 间隔的意思,这里需要数字型的参数,以毫秒为单位,1秒=1000毫秒。

触摸

函数功能

发送触摸事件。

函数方法

1
2
3
touchDown(整数型index,整数型x,整数型y);
touchMove(整数型index,整数型x,整数型y);
touchUp(整数型index,整数型x,整数型y);

返回值

无。

特殊说明

index 手指序号,用来区分手指的,多用于多手指操作时的区分手指,序号没有固定手指对应,而坐标分别为取色器中显示的横纵坐标。

输入字符串

函数功能

向输入框中输入文本。

函数方法

1
inputText(文本型string);

返回值

无。

特殊说明

  • 使用该函数前,必须先点击输入框获取焦点,如果设备系统版本为IOS7,,使用1.6.9及以上版本。仅在IOS7上,可使用"#ENTER#"作为回车,相当于点击虚拟键盘上的"Done",需要注意的是,并不是所有输入框都可以使用此功能,在某些应用当中可能导致目标应用崩溃。
  • 该函数不支持第三方输入法(百度输入法、搜狗输入法等),请切换到系统内置输入法方可使用。对于弹出的窗口,需要先初始化再使用该函数,例如App Store登陆窗口(该窗口Bundle ID为"com.apple.springboard")。
  • 控制字符包括、、、#ENTER#。
  • b的意思是backspace,n的意思是newline,r的意思是enter。

获取屏幕某点颜色值(十进制)

函数功能

获取某一点的颜色值函数方法。

函数方法

1
color = getColor(整数型x,整数型y);

特殊说明

该函数可用于直接比较,不需要另外的值去盛放返回值,返回值为10进制。

获取屏幕某点颜色值(BGR)

函数功能

获取某一点的颜色值(BGR)。

函数方法

1
r1,g1,b1 = getColorRGB(整数型 x,整数型 y);

返回值

整数型r,g,b。

特殊说明

可用于近似比较,单纯比较r,g,b中的一个,进行逻辑判断。

模糊区域找色

函数功能

在指定区域中,寻找符合指定颜色的坐标,支持模糊查找。

函数方法

1
x,y = findColorInRegionFuzzy(整型 color,整数型 degree,整数型 x1,整数型 y1,整数型 x2,整数型 y2);

返回值

整数型 x,y

特殊说明

找到一个即停止,也就是说,非特征点的话会造成意想不到的感觉,返回值如果找不到默认为-1,-1,要进行判断。

区域多点找色

函数功能

在指定区域,根据颜色以及其周边点的颜色,寻找符合条件的点的坐标,支持模糊查找。

函数方法

1
x,y = findMultiColorInRegionFuzzy(整数型 color,文本型 posandcolor,整数型 degree,整数型 x1,整数型 y1,整数型 x2,整数型 y2);

返回值

整数型 x,y

截图

函数功能

截取屏幕中指定区域的图像并生成指定格式的图片文件。

函数方法

1
snapshot(文本型 picname,整数型 x1,整数型 y1,整数型 x2,整数型 y2,数字型 quality);

返回值

无。

特殊说明

  • quality当截图格式选为jpg时,可用此参数控制图片的质量,此参数值为大于0且小于等于1的值。
  • 保存图片的格式可为bmp、jpg、png,因为png是ios中最常见的格式,所以推荐选择png。
  • 截图时,如果用全屏截图,右下角顶点坐标最大为(maxX-1,maxY-1),否则会出现越界错误。
  • 默认图片路径为/var/mobile/Media/TouchSprite/res,自建目录请填写相对路径,文件相同将会被覆盖。
  • quality参数仅在触动精灵版本高于 2.0.9 时方可使用。

模糊区域找图

函数功能

在指定区域中,寻找指定的图案,返回其左上角顶点坐标,支持模糊查找。 ### 函数方法

1
x,y = findImageInRegionFuzzy(文本型 picpath,整数型 degree,整数型 x1,整数型 y1,整数型 x2,整数型 y2,整数型 alpha);

返回值

整数型x,y

特殊说明

  • 不推荐此函数,对于找小型图片精度较差。
  • 默认图片路径为/var/mobile/Media/TouchSprite/res(参数中无需填写完整路径),自建目录请填写相对路径。
  • 忽略的颜色值指将要寻找的图片的背景颜色,即在屏幕画面上不匹配寻找对象的背景颜色。

日志

函数功能

配置日志输出地址与方式、写出或发送日志、关闭日志输出连接。

函数方法

1
2
3
4
5
6
7
8
initLog(文本型 name,整数型 flag);
WLog(文本型 name,文本型 contents);
closeLog(文本型 name);
输出方式:
0== 输出到文件名
1== 输出到带时间戳的文件名
2== 异步发送到服务器
3== 同步发送到服务器

返回值

无。

特殊说明

  • flag 参数设置为2和3,需要触动精灵1.7.0 及以上版本支持,并需要配合触动精灵日志服务端使用,要求设备与运行服务端的PC处于同一网段。
  • 该函数支持多日志记录,即可以定义并初始化多个日志用于分类存放。
  • 此函数一般用于脚本开发阶段,若脚本开发完成,只需注释掉initLog即可。

远程日志

函数功能

输出日志到触动精灵IDE(TS Studio)

函数方法

1
nLog(文本型 contents);

返回值

无。

特殊说明

  • 该函数需要触动精灵 2.1.6 以上版本支持。
  • 该函数需要TS Studio 1.0.3 以上版本支持。
  • 使用该函数无需设置日志接收端IP地址。
  • 此函数仅作为调试用途,由TS Studio发起的脚本运行将会接收到nLog回传信息,其它方式运行的脚本将不会触发nLog函数。

系统日志

函数功能

输出系统日志NSLog。

函数方法

1
sysLog(文本型 contents);

返回值

无。

特殊说明

用于mac开发中调试。

播放音频

函数功能

在后台播放指定的声音文件。

函数方法

1
playAudio(文本型 filename);

返回值

无。

特殊说明

  • 默认音频路径为/var/mobile/Media/TouchSprite/res,自建目录请填写相对路径。
  • 如音频放置在默认资源目录,参数中可直接填写文件名。
  • 脚本终止将直接导致音频播放终止。

保持屏幕

函数功能

在脚本中保持当前屏幕内容不变,多次调用取色、找色、截图、找图等功能函数时,直接调用保持的内容。 该函数为优化类函数,能够为大量的静态图像处理函数提供性能优化。

函数方法

1
keepScreen(逻辑型 flag);

返回值

无。

特殊说明

  • 用完记得关掉keepscreen。
  • 据不完全统计,使用该函数与不使用该函数,普通屏上脚本取色速率高达100x,高分屏上脚本取色速率高达50x。在执行大量静态图像操作时,请务必使用该函数优化脚本性能。
  • 该函数一般用于画面变动节奏较慢,但需要根据大量取色、找色来完成计算和操作的脚本中,例如“天天爱消除”、“天天星连萌”这样的游戏。

运行、关闭应用

函数功能

打开或关闭一个应用程序。

函数方法

1
2
flag = runAPP(文本型 bid);
closeApp(文本型 bid);

返回值

0 成功。

特殊说明

  • runAPP函数需要系统响应时间较长,注意做好延迟或判断。
  • 使用closeApp函数后在后台仍可看到应用程序图标属正常现象,实际进程已不在后台。

获取屏幕分辨率

函数功能

获取设备屏幕的分辨率,用来判断坐标系的使用。

函数方法

1
width,height = getScreenSize();

返回值

整数型 width,height

特殊说明

统一为竖直(Home键在下方时)屏幕的宽度和高度。

获取设备类型

函数功能

获取设备类型,可使用获取屏幕分辨率代替。 一般用于判定iphone设备,再进行iphone特有的操作。

函数方法

1
type = getDeviceType();

返回值

整数型type

特殊说明

  • 0-itouch
  • 1-iphone
  • 2-ipad

获取触动精灵设备号

函数功能

获取设备标识,每台设备的标识都是唯一的。

函数方法

1
id = getDeviceID();

返回值

文本型 id ### 特殊说明 上古时代的产物,主要用于加密,目前tsp平台的方法安全得多。

退出脚本执行

函数功能

直接终止脚本。

函数方法

1
lua_exit();

返回值

无。

特殊说明

通过设备型号关闭脚本。

模拟主屏幕按键

函数功能

模拟用户按下或抬起主屏幕(Home)按键的操作。

函数方法

1
pressHomeKey(整数型flag);

返回值

无。

特殊说明

  • 在IOS6下,状态标识为0时,调用该函数则开始按下Home键并按住不放,直到状态标识为1时重新调用该函数,抬起Home键。
  • 在IOS7下,状态标识只能填写0,代表按一次Home键,即按下并立即抬起Home键的操作。
  • 如需在IOS7以上版本中使用双击功能请使用函数doublePressHomeKey。

双击Home键

函数功能

模拟用户双击Home键的操作。

函数方法

1
doublePressHomeKey();

返回值

特殊说明

  • 此函数需触动精灵 2.x以上版本支持
  • 此函数仅能用于IOS7或以上版本

判断是否为前台应用

函数功能

根据用户的Bundle ID判断应用是否处于前台。 ### 函数方法

1
flag = isFrontApp(文本型 bid);

返回值

整数型 flag

特殊说明

  • 0:不运行
  • 1:运行

手机震动

函数功能

使手机震动一次。 可以用于脚本特定警报。

函数方法

1
vibrator();

返回值

无。

特殊说明

  • 需要打开设备震动选项,以后可能会出
  • 此功能函数方便调用

重置锁屏计时

函数功能

重置系统空闲时间,阻止自动锁屏,保持屏幕常亮。

函数方法

1
resetIDLETimer();

返回值

无。

特殊说明

屏幕常亮保持一个画面可能会导致屏幕寿命大大缩短。

锁定设备

函数功能

锁定设备并关闭屏幕。

函数方法

1
lockDevice();

返回值

无。

设备锁定状态

函数功能

判断当前设备的屏幕锁定状态。

函数方法

1
flag = deviceIsLock();

返回值

整数型 flag

特殊说明

  • 0:未锁定
  • 非0:锁定

解除屏幕锁定

函数功能

解除屏幕锁定状态。

函数方法

1
unlockDevice();

返回值

无。

特殊说明

  • 如您的设备设置了锁屏密码,则此函数仅能唤醒屏幕。
  • 如需解锁,需要配合特定模拟。
  • 以上实例配合定时启动脚本效果显著,需要注意的是,不要使用以上代码配合开机自启动使用。
  • 此函数仅支持IOS7以上版本。

获取网络时间

函数功能

从互联网上获取时间信息,返回从1970年1月1日到当前状态的秒数。

函数方法

1
time = getNetTime();

返回值

整数型 time

剪贴板读写

函数功能

读写系统剪贴板

函数方法

1
2
writePasteboard(文本型 string);
string = readPasteboard();

特殊说明

剪贴板会被readPasteboard覆盖。

获取触动精灵版本号

函数功能

获取触动精灵版本号。

函数方法

1
version = getTSVer();

获取系统版本号

函数功能

获取系统版本号。

函数方法

1
version = getOSVer();

获取设备系统类型

函数功能

获取设备系统类型。

函数方法

1
os_type = getOSType();

返回值

文本型 os_type

特殊说明

此函数需要2.1.6版本及以上TS支持。

获取前台应用Bundle ID

函数功能

获取前台应用Bundle ID。

函数方法

1
bid = frontAppBid();

返回值

文本型 bid

特殊说明

无应用的话将会返回空字符串。

设置来电暂停

函数功能

设置电话拨入时停止脚本运行的标识。

函数方法

1
luaExitIfCall(逻辑型 flag);

返回值

无。

特殊说明

可以多次调用。

清除钥匙串

函数功能

清除指定应用储存在系统钥匙串中的信息。

函数方法

1
clearKeyChain(文本型 bid);

返回值

无。

特殊说明

请谨慎使用。

获取用户点击坐标

函数功能

调用该函数后,触动精灵将等待用户完成一次屏幕点击,并返回此点击的坐标。

函数方法

1
x,y = catchTouchPoint();

返回值

整数型 x,y

特殊说明

  • 此函数将一直等待用户完成屏幕点击并阻止脚本继续运行。
  • 此函数获取到的坐标为竖屏坐标,横屏情况请自行转换。
  • 本函数有较小的延迟,连续点击时,请勿点击过快。

伪造GPS定位信息

函数功能

调用该函数以欺骗当前应用获取到的位置信息。

函数方法

1
fakeGPS(float x,float y);

返回值

无。

特殊说明

  • 多次调用该函数能多次伪造位置,参数为0,0时调用该函数能取消伪造功能。
  • 调用此函数需先启动目标应用程序再执行伪装函数。

获取应用程序安装路径

函数功能

调用该函数将返回应用程序的安装路径

函数方法

1
path = appBundlePath(文本型 bid);

返回值

文本型 path

特殊说明

触动精灵版本2.0.7以上方可使用此函数。

获取应用程序数据路径

函数功能

调用该函数将返回应用程序的数据路径。

函数方法

1
path = appDataPath(文本型 bid);

返回值

文本型 path

特殊说明

  • IOS8下,并非所有应用都有data目录,如返回值为空,说明该应用没有data目录。
  • 触动精灵版本2.0.8以上方可使用此函数。

提示框

函数功能

弹出提示信息。

函数方法

1
dialog(文本型 text,整数型 time);

返回值

无。

特殊说明

  • time 参数时间一般在2秒以上,否则出现时间太短看不清楚。
  • 该函数仅呈现提示信息给用户,不可接收返回值。
  • 该函数所产生的提示窗口显示的时候会影响当前屏幕取色,请在合理的位置使用该函数。
  • 在触动精灵2.2.4以上版本中,time参数可省略,如省略将按0 处理。
  • 注意好时间,不要出现让系统锁屏的问题。

HUD提示

函数功能

以HUD方式显示提示信息。

函数方法

1
toast(文本型 text)

返回值

无。

特殊说明

  • 支持版本:触动精灵IOS v2.2.4以上
  • 该函数所产生的提示信息将以HUD形式显示在屏幕上,该函数所产生的提示信息可能会影响当前屏幕的找色,请合理使用。
  • 异步显示,不会随脚本结束而消失。
  • 时间无法自定义,大约2秒左右。

带按钮的对话框

函数功能

弹出提示信息,并提供1-3个按钮给用户选择。

函数方法

1
choice = dialogRet(文本型 text,文本型 cbtn,文本型 btn1,文本型 btn2,整数型 time);

返回值

整数型 choice

特殊说明

  • 请勿将三个按钮都设置为空,再将time参数设置为0,这样讲造成出现无法消失也没有按钮的对话框,造成设备午安进行其它操作,只能重启。
  • 值得一提的是,cbtn总是对话框的最右边或者最下面的按钮。
  • 可以拿来做用户协议。

带参数的对话框

函数功能

弹出提示信息,并提供1-2个输入框给用户输入。

函数方法

1
2
text_a = dialogInput(文本型 title,文本型 format,文本型 btn);
text_a,text_b = dialogInput(文本型 title,文本型 format,文本型 btn);

返回值

返回用户输入的文本。

特殊说明

  • 一般来说,使用该函数都要对用户输入的数据进行一定的检查,例如要求非空、长度不得少于。
  • 出于对话框事件需要响应时间,所以建议每次使用对话框,均应使用延迟。

自定义界面

函数功能

显示一个自定义的界面,用来接收用户相关的自定义配置。

函数方法

1
ret,input_1,input_2,... = showUI(文本型 ui_json);

返回值

整数型 ret,文本型 input_(*) ### 特殊说明 ret将会返回一个数值型的参数,当返回1的时候表示确认,当返回0的时候表示取消。

高级区域多点找色

函数功能

在指定区域,根据颜色以及其周边点的颜色,寻找所有符合条件的点的坐标,支持模糊查找。

函数方法

1
point = findMultiColorInRegionFuzzyExt(整型 color,文本型posandcolor,整数型 degree,整数型 x1,整数型 y1,整数型 x2,整数型 y2);

返回值

table类型 point

特殊说明

特别的慢,影响效率。

打开网址

函数功能

调用系统浏览器,打开一个指定网址。

函数方法

1
openURL(文本型 url);

返回值

无。

获取触动精灵、帮你玩用户路径

函数功能

获取触动精灵、帮你玩用户路径函数功能,获取触动或帮你玩脚本商城的用户路径。 ### 函数方法

1
path = userPath();

返回值

文本型 path

将图片存入系统相册

函数功能

将图片存入系统相册。

函数方法

1
saveImageToAlbum(文本型 path);

返回值

无。

特殊说明

支持版本:触动精灵IOSv2.2.5-1以上。

本地光学字符识别

函数功能

将指定区域的图像转换为其显示出的文字。

函数方法

1
text = ocrText(整数型 x1,整数型 y1,整数型 x2,整数型 y2,整数型 language,文本型 list);

返回值

文本型 text

特殊说明

  • 语言选择10-英文
  • 20-英文识别(适用于深色背景)
  • 1==中文识别白名单,设置此参数后,不在白名单中的字符将被忽略。

云打码

函数功能

云端打码函数。

函数方法

1
ret = ocr.cloudDcrText(op);

返回值

返回一个TABLE

特殊说明

参数 类型 说明
platform 文本型 平台类型。好爱-haoi23;打码兔-dama2;优优云-uuwise;火眼-hvocr
x1,y1 整数型 识别区域左上角顶点坐标
x2,y2 整数型 识别区域右下角顶点坐标
type 文本型 打码类型,可在对应平台官网查询
username 文本型 打码平台用户名,需用户去相应平台自行注册
password 文本型 打码平台密码,需用户去相应平台自行注册
length 整数型 打码长度(可选参数),默认为0
timeout 整数型 超时时间(可选参数),默认为10秒
scale 整数型 缩放比例(可选参数),默认为100,即不进行缩放

函数

函数功能

函数方法

1
2


返回值

特殊说明

安全

开源

  • alipayForest 触动精灵脚本:实现蚂蚁森林自动收取能量,帮他人收取能量。
  • luaForAd 用触动精灵lua脚本刷各种广告,由后台下发个广告SDK任务,支持23种分辨率,支持水军,留存上报,留存可后台设置百分比,10多个平台广告同时刷,实时上报刷量数据 本脚本建议配合盘古后台系统,fakeapk hook 工具使用。
  • ts-helper 触动精灵操作模块
  • TTAXC 天天爱消除 For 触动精灵挂机脚本
  • TouchSprite_Project 触动精灵模拟脚本工程代码
  • dd-punch 基于『触动精灵』的钉钉自动打卡脚本
坚持原创技术分享,您的支持将鼓励我继续创作!
0%