tft每日頭條

 > 圖文

 > 按鍵精靈腳本怎麼用手機版

按鍵精靈腳本怎麼用手機版

圖文 更新时间:2024-10-06 01:04:59
大家好,我是公衆号3分鐘學堂的郭立員。

給大家介紹一種給腳本快速添加「保存」和「讀取」UI配置文件的方法,我公衆号的老粉可能知道怎麼保存和讀取界面配置,因為我之前寫過兩期相關的文章教程。

這一期文章教程我們着重體現兩個字“快速”,教大家寫好模闆下次直接給自己的腳本添加一下就行。

效果展示

存儲配置和加載配置

按鍵精靈腳本怎麼用手機版(按鍵精靈安卓版)1

往期原理介紹

回顧一下之前兩期的原理啊~

方法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名稱,如果按照循環去寫名稱還好,可以通過計次循環的方式拼接名稱,比如輸入框 序号。

如果在編寫腳本開始時就打算好了添加配置文件保存和加載功能,可以專門留言命名問題,但是我們在寫腳本的時候都是根據需要随時可能會添加界面元素,那麼這個就是個頭疼的問題了。

那麼怎麼解決呢?

讀取腳本自己生成的界面配置文件,當我們點擊界面下方的保存按鈕,在手機(模拟器)生成配置文件。

按鍵精靈腳本怎麼用手機版(按鍵精靈安卓版)2

配置文件中保存我們想要的界面元素名稱。

{"下拉框1":0,"多選框1":true,"輸入框1":"你好"}

分析到這裡,我們串聯一下界面源碼、界面展示内容、界面配置文件三者之間的關系,下面以輸入框為例~

按鍵精靈腳本怎麼用手機版(按鍵精靈安卓版)3

通過上圖可以看到,界面上的元素名稱,除了源碼中有,在配置文件裡面也有,那麼這就為我們解決獲取界面元素名稱問題提供了一個新的思路,讀取配置文件裡面元素名稱。

第一步:使用文本讀取命令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之類的參數值,這樣每個設備也不一樣,即使放到共享文件夾裡面配置文件也不共享的。

保存配置代碼

按鍵精靈腳本怎麼用手機版(按鍵精靈安卓版)4

代碼中的一些細節:

①代碼是腳本調試時的,它使用的是調試路徑,并且那一串随機字符我模拟器裡面的不是你的,必須要自己修改。

按鍵精靈腳本怎麼用手機版(按鍵精靈安卓版)5

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

②界面配置文件缺失報錯機制,首次使用腳本,如果不點擊保存按鈕是不生成配置文件的,所以需要加一個提示信息。

③存儲配置不是直接複制生成的配置文件,而是遍曆界面上所有的元素,然後存儲起來,原因是修改完界面内容,如果不點下方保存按鈕,配置文件不會修改,直接複制配置文件,隻能存儲上次點擊保存按鈕時的界面内容。

讀取配置原理

讀取配置涉及到的知識點,基本保存配置一樣。

第一步:讀取配置文件,注意是你存儲的配置,不是自動生成的配置文件,路徑别寫錯了。

第二步:轉一下table,獲取到元素的鍵值對。

第三步:判斷每一個元素的名稱和值的類型,逐個修改界面元素。使用uip.SetAttribute命令。

讀取配置代碼

按鍵精靈腳本怎麼用手機版(按鍵精靈安卓版)6

使用方法

按照我上面的講解的内容,寫好自己的模闆,之後如果想給自己的腳本添加此功能,可以先在界面源碼中添加兩個按鈕,點擊響應的名稱寫“存儲配置”和“加載配置”,然後把函數代碼放到界面代碼區,就可以使用了。

最後強調一點,首次使用腳本一定要先點一下自帶的保存設置按鈕。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved