本期文章文字比较多,希望你能耐心看完。
通常我们在编写有界面的脚本,都是用界面控制脚本,比如一个引流脚本,会把话术写在脚本的输入框里面,通过修改输入框的内容来控制脚本引流时输出的话术。
还有在界面上加一个多选框,如果多选框被选中,脚本就执行对应的功能,如果没有被选中,就不执行。
这些都是界面控制脚本,那么可不可以脚本控制界面呢?
比如,界面上有一些多选框,在脚本运行前它们是勾选状态,在脚本运行后,已经执行过对应功能的多选框就取消勾选了。
这种情况就属于脚本控制界面,那需要怎么操作呢?
在解决上面问题之前,先说一个新手的误区:脚本读取的是界面上显示的内容,这是错误的。
平时我们在读取界面内容时,会用到一个命令ReadUIConfig(界面元素名称),这个命令看似读取的是你在界面上填写的内容。其实不然,它是读取的配置文件里面的内容,这也是为啥新手常遇到这样一个问题:
明明已经在界面上填写了东西,为啥脚本读取不到呢?
如果有人问我这个问题,我都会说你重新预览界面,填写内容,然后点界面下方的保存按钮,这个问题就可以解决了。
这里面有一个关键点,就是重新点击保存按钮,也就是更新了配置文件里面内容,按照我上面的说法,读取界面是读取配置文件的内容,当配置文件更新,自然就能读取了。
那配置文件在哪里呢?重点来了。
这个要分两种情况:
(1)调试时:/sdcard/MobileAnJian/UIConfig/
这个文件夹里面有一堆很长随机字母的文件,这些都是你平时写脚本的界面配置文件。
通常你想要找到脚本对应的界面,就重新保存一下,看最新时间那一个就是了。
(2)打包后:"/data/data/"&包名&"/files/script.cfg"
这里面有个变量就是包名,每一个脚本都有自己独立的包名,所以你在应用的时候,就要预先想好起什么包名,保证你的脚本配置文件路径能够对应的上。
知道配置文件在哪里以后,我们来说一下配置文件到底是啥样的。
新建一个界面,在上面把常见的界面元素都加上,包括文字框,多选框,输入框,下拉框,按钮。
做好以后点击保存,然后去配置文件查看它。
这里我是把配置文件直接用文本打开,看到里面有一个表(用{}),表里有3个内容:
"输入框1":"这是一个输入框"
"多选框1":true
"下拉框1":1
回看我做的界面,原本是5个元素,为啥只有3个呢?因为按钮和文字框是没有内容需要我们输入或修改的。
通过简单的测试我们基本可以确定配置文件只保存输入框、多选框、下拉框的设置情况。
再来看一下配置文件的保存形式:
①输入框: 名称:初始化文本
"输入框1":"这是一个输入框"
②多选框:名称:选中
"多选框1":true
③下拉框:名称:初始选项
"下拉框1":1
对比分析一下,它们都是名称+对应的某一个属性值,在配置文件的表中,名称是作为表的键名,是不能重复的,否则读取不出表的对应键值的。
这也是为啥说界面不能有相同名称元素的原因。
每个元素都是只有名称和对应的属性值,那么脚本是怎么分清楚到底哪个名称是多选框,哪个名称是输入框呢?难道是根据输入框名称写的输入框1吗,当然不是了,因为我们知道名称是可以随便命名,输入框你也可以命名为多选框1,这是完全可以的,那么到底是怎么区分的呢?
输入框的值是字符串,
多选框的值是布尔值true或者false
下拉框的值是数值,132456789
每一个元素对应的值类型都不一样,脚本通过判断类型就可以轻易分清楚,界面元素是哪一个,当然了对于脚本来说不区分也无所谓了,只不过就是读取配置文件的内容而已。
说完原理,下面开始说一下怎么修改了。
配置文件支持文本读写命令的,也就说你可以通过file.read读取配置文件,也可以通过file.write写入配置文件。
这里举一个修改输入框的例子:(调试时的配置啊)
Dim 路径="/sdcard/MobileAnJian/UIConfig/586647d1-efe9-49d1-92ab-e81390a27435"dim a=File.read(路径)Dim table=Encode.JsonToTable(a)TracePrint table["输入框1"]table["输入框1"] = "我已经发生变化了!"Dim json=Encode.TableToJson(Table) Call File.Write(路径, json)
基本过程就是:读取配置文件得到json--json转表--修改表--转成json--写入到配置文件
本期文章文字比较多,希望你能耐心看完,看懂这期文章基本你就能够用脚本自由修改界面内容了。
好了内容就这些,如果觉得还可以帮忙点一下右下角的在看按钮。
3分钟学堂⑩群:661372264
脚本接单③群:1048041365
羊毛组4群:665162959
3分钟学堂vip②群(242971687)已经开通,在学习过程中有基础问题需要解答的朋友,可以加入此群,群费48.8元
加群联系我:
QQ:453485278
微信:xiaomu86119
更多按键精灵安卓版的内容可以查看我的往期文章教程。