php table获取内容和修改内容_【按键精灵安卓版】脚本运行修改界面上的内容

本期文章文字比较多,希望你能耐心看完。

通常我们在编写有界面的脚本,都是用界面控制脚本,比如一个引流脚本,会把话术写在脚本的输入框里面,通过修改输入框的内容来控制脚本引流时输出的话术。

还有在界面上加一个多选框,如果多选框被选中,脚本就执行对应的功能,如果没有被选中,就不执行。

这些都是界面控制脚本,那么可不可以脚本控制界面呢?

比如,界面上有一些多选框,在脚本运行前它们是勾选状态,在脚本运行后,已经执行过对应功能的多选框就取消勾选了。

这种情况就属于脚本控制界面,那需要怎么操作呢?

在解决上面问题之前,先说一个新手的误区:脚本读取的是界面上显示的内容,这是错误的。

平时我们在读取界面内容时,会用到一个命令ReadUIConfig(界面元素名称),这个命令看似读取的是你在界面上填写的内容。其实不然,它是读取的配置文件里面的内容,这也是为啥新手常遇到这样一个问题:

明明已经在界面上填写了东西,为啥脚本读取不到呢?

如果有人问我这个问题,我都会说你重新预览界面,填写内容,然后点界面下方的保存按钮,这个问题就可以解决了。

这里面有一个关键点,就是重新点击保存按钮,也就是更新了配置文件里面内容,按照我上面的说法,读取界面是读取配置文件的内容,当配置文件更新,自然就能读取了。

那配置文件在哪里呢?重点来了。

这个要分两种情况:

(1)调试时:/sdcard/MobileAnJian/UIConfig/

这个文件夹里面有一堆很长随机字母的文件,这些都是你平时写脚本的界面配置文件。

54a4d9ed3753b5ae6bd26cdbb0a49f47.png

通常你想要找到脚本对应的界面,就重新保存一下,看最新时间那一个就是了。

(2)打包后:"/data/data/"&包名&"/files/script.cfg"

这里面有个变量就是包名,每一个脚本都有自己独立的包名,所以你在应用的时候,就要预先想好起什么包名,保证你的脚本配置文件路径能够对应的上。

知道配置文件在哪里以后,我们来说一下配置文件到底是啥样的。

新建一个界面,在上面把常见的界面元素都加上,包括文字框,多选框,输入框,下拉框,按钮。

71490bedd3b494692a6e9afad2ab1316.png

做好以后点击保存,然后去配置文件查看它。

87057593410472485c4b673dccdb76fe.png

这里我是把配置文件直接用文本打开,看到里面有一个表(用{}),表里有3个内容:

"输入框1":"这是一个输入框"

"多选框1":true

"下拉框1":1

回看我做的界面,原本是5个元素,为啥只有3个呢?因为按钮和文字框是没有内容需要我们输入或修改的。

通过简单的测试我们基本可以确定配置文件只保存输入框、多选框、下拉框的设置情况。

再来看一下配置文件的保存形式:

输入框: 名称:初始化文本

"输入框1":"这是一个输入框"

36367b8711a9489917833c4954bb6f1b.png

多选框:名称:选中

"多选框1":true

c24a0cec104afc93e2beea4548674bac.png

下拉框:名称:初始选项

"下拉框1":1

c6706fe3d718a8d03cf3046bc26b3a35.png

对比分析一下,它们都是名称+对应的某一个属性值,在配置文件的表中,名称是作为表的键名,是不能重复的,否则读取不出表的对应键值的。

这也是为啥说界面不能有相同名称元素的原因。

每个元素都是只有名称和对应的属性值,那么脚本是怎么分清楚到底哪个名称是多选框,哪个名称是输入框呢?难道是根据输入框名称写的输入框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

更多按键精灵安卓版的内容可以查看我的往期文章教程。

d162bc53328701fd7eb67e639fd6e795.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值