天涯论坛

 找回密码
 立即注册
搜索
查看: 17|回复: 0

「按键精灵安卓版」快速给你的脚本加上保留配置和加载配置

[复制链接]

2944

主题

2万

回帖

9997万

积分

论坛元老

Rank: 8Rank: 8

积分
99979435
发表于 2024-11-2 15:19:41 | 显示全部楼层 |阅读模式

大众好,我是公众号3分钟学堂的郭立员。

大众介绍一种给脚本快速添加「保留」和「读取」UI配置文件的办法,我公众号的老粉可能晓得怎么保留和读取界面配置,由于我之前写过两期关联文案教程。

这一期文案教程咱们着重表现两个字“快速”,教大众写好模板下次直接给自己的脚本添加一下就行。

效果展示

存储配置和加载配置

往期原理介绍

回顾一下之前两期的原理啊~

办法1:经过uip命令读取界面上的内容,而后根据元素名叫作以键值对的形式(json)写入到文本里面,利用文本这个存储媒介实现保留和读取界面配置。

办法2:读取和写入界面配置文件来实现界面存储和加载。配置文件存储位置有2种状况~

状况1】脚本调试周期,配置文件路径是:新版和老版按键助手路径区别

/sdcard/MobileAnJian/UIConfig/ //老版按键助手 /sdcard/MobileAnJianVip/UIConfig/ //新版按键助手

状况2】脚本打包后,配置文件路径是:

/data/data/"&包名&"/files/script.cfg

这两类路径必定要区掰开不可用混淆了。

往期这两种办法各有坏处端,办法1需要预先写好每一个输入框、多选框、下拉框的名叫作不可随便修改,倘若已然写好的脚本,就不适合用这个办法去写了。

办法2的坏处端是我在脚本中写的读取和写入配置文件的,必须在运行脚本后生效,保留配置点一下运行脚本还好,倘若是加载配置就显出很麻烦了,加载完还要重启脚本才可看到界面上的内容变化。

本期原理介绍

这一期的原理是结合前两期的内容,办法1为基本经过办法2获取元素名叫作及类型,处理办法1的缺陷

下面分别说一下保留配置和读取配置

保留界面原理

①读取界面上“可修改”内容,便是被存储到界面配置文件里面的,并不是所有的界面元素啊,这一点需要重视一下。“可修改”内容包含:输入框的内容、多选框是不是勾选、下拉框的选项。

UIP.GetAttribute("界面元素名叫作")

这个命令的返回值是键值对的表(数组),每一个界面元素的键值对都是不同样的。

输入框的内容

dim ret=uip.GetAttribute("输入框1") showmessage ret["初始文本"]

多选框是不是勾选

dim ret=uip.GetAttribute("多选框1") showmessage ret["选中"]

下拉框的选项编号

dim ret=uip.GetAttribute("下拉框1") showmessage ret["初始选项"]

倘若你想深入认识的话,能够经过下面的代码把所有的界面元素返回值都看一遍。

Function 按钮点击事件() dim ret=uip.GetAttribute("界面元素名叫作") Dim json=encode.tabletojson(ret) showmessage json End Function

处理获取界面元素名叫作的问题,本文的高光点。

以前在读取界面上内容时,都是要预先晓得界面上所有元素的名叫作例如输入框有3个,咱们晓得输入框1名叫作、输入框2名叫作、输入框3名叫作倘若根据循环去写名叫作还好,能够经过计次循环的方式拼接名叫作例如输入框+序号。

倘若在编写脚本起始时就打算好了添加配置文件保留和加载功能,能够专门留言命名问题,然则咱们在写脚本的时候都是按照需要随时可能会添加界面元素,那样这个便是个头疼的问题了。

那样怎么处理呢?

读取脚本自己生成的界面配置文件,当咱们点击界面下方的保留按钮,在手机(模拟器)生成配置文件。

配置文件中保留咱们想要的界面元素名叫作

{"下拉框1":0,"多选框1":true,"输入框1":"你好"}

分析到这里,咱们串联一下界面源码、界面展示内容、界面配置文件三者之间的关系,下面以输入框为例~

经过上图能够看到,界面上的元素名叫作,除了源码中有,在配置文件里面有,那样这就为咱们处理获取界面元素名叫作问题供给了一个新的思路,读取配置文件里面元素名叫作

第1步:运用文本读取命令file.read,读取配置文件的内容,得到键值对的表。

第二步:针对一个键值对的表,想要获取它的键名,最简单的办法便是遍历数组了。

For Each k , v In table //table是键值对 //k是键值(key) //v是键值(value) Next

第三步:获取到键名便是元素名叫作,还有一个问题便是,怎么区分元素的类型。

一般来讲,界面元素默认的命名方式是元素类型+编号:

输入框1、输入框2、输入框3… 多选框1、多选框2、多选框3… 下拉框1、下拉框2、下拉框3…

倘若大众都本本分分的运用这个默认名叫作,那还好,然则常常大众为了能够区分每一个元素的功效,会给它们修改名叫作

这般一来就出问题了,当咱们经过读取配置文件获取到一个元素名叫作而后下一步就没法经过叫作命名判断元素的类型了,到底是输入框、多选框还是下拉框。

处理这个问题我供给另一一个思路:判断键值的类型。

读取输入框咱们获取到内容是字符串类型,读取多选框咱们获取的true和false的布尔值类型,读取下拉框咱们获取到的是01234的数值类型。

每一个界面元素的值都有自己区别的类型,按照键值类型反推元素类型,这个确实是一个可行的思路。

当然到这儿我还是有一点担忧,由于我担心界面代码区不支持山海插件的tpye命令,那样没法获取到数据类型了,好在测试了一下能够支持。

import "shanhai.lua" Function 响应事件() Dim v=123 showmessage shanhai.type(v) End Function

新建一个界面加上一个按钮的点击响应事件函数,测试就可

介绍3类返回值的写法:

字符串:string 数值:number 布尔值:Boolean

到这一步咱们能够把名叫作及对应的类型获取到了,那样就差最后一步写入配置了。

③把界面上的内容存储起来。

之前的过程已然能够把所有的元素名叫作及类型获取到了,之后我就能够

uip.GetAttribute 命令把界面所有内容都获取一遍,并以键值对的形式存入到一个新的文件中。

这个文件的后缀能够是txt文本,cfg配置文件,乃至不写后缀都行。

文件的路径,倘若是手机那就无所说了,倘若是模拟器想要实现多个模拟器共享配置文件就需要重视,必须放在共享文件夹里面,倘若不想共享配置文件,就需要放到其他非共享文件夹里面。

当然不共享还有一个办法便是文件名用imsi,imei之类的参数值,这般每一个设备同样,即使放到共享文件夹里面配置文件不共享的。

保留配置代码

代码中的有些细节:

代码是脚本调试时的,它运用的是调试路径,并且那一串随机字符我模拟器里面的不是你的,必须要自己修改

生成文件的日期找你自己刚才操作的界面配置文件。

②界面配置文件缺失报错机制,首次运用脚本,倘若不点击保留按钮是不生成配置文件的,因此需要加一个提示信息。

③存储配置不是直接复制生成的配置文件,而是遍历界面上所有的元素,而后存储起来,原由是修改完界面内容,倘若不点下方保留按钮,配置文件不会修改,直接复制配置文件,只能存储上次点击保留按钮时的界面内容。

读取配置原理

读取配置触及到的知识点,基本保留配置同样

第1步:读取配置文件,重视是你存储的配置,不是自动生成的配置文件,路径别写错了。

第二步:转一下table,获取到元素的键值对。

第三步:判断每一个元素的名叫作和值的类型,逐个修改界面元素。运用uip.SetAttribute命令。

读取配置代码

运用办法

根据我上面的讲解的内容,写好自己的模板,之后倘若想给自己的脚本添加此功能,能够先在界面源码中添加两个按钮,点击响应的名叫作写“存储配置”和“加载配置”,而后把函数代码放到界面代码区,就能够运用了。

最后强调一点,首次运用脚本必定要先点一下自带的保留设置按钮。





上一篇:从按键精灵到RPA设备人,你想要的自动化办公软件是什么?
下一篇:「按键精灵安卓版」「基本知识」按键post基本写法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|天涯论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-22 17:29 , Processed in 0.104565 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.