tft每日頭條

 > 生活

 > callkit功能怎麼開啟安卓

callkit功能怎麼開啟安卓

生活 更新时间:2025-01-11 10:16:09

大家好,我是公衆号3分鐘學堂的郭立員~

前些天有朋友問怎麼實現這個功能,如下圖所示:

callkit功能怎麼開啟安卓(怎麼讓腳本可以領取免費測試卡)1

這個功能就是給自己的腳本加上一個可以領免費測試卡的功能,要想實現它需要注意的内容挺多的,下面我們逐個來說一下:

(1)功能上說要實現兩個操作:點擊按鈕獲取激活碼(測試卡) 寫入輸入框

①點擊按鈕獲取一個激活碼

因為腳本要給别人使用,所以激活碼不能是本地的,隻能是來自服務器端,那麼可以使用post/get方式獲取。

激活碼的來源,可以是預先生成好的一批激活碼,也可以是每次點擊按鈕生成新的激活碼,它們各有優缺點:

預生成的激活碼:生成的激活碼數量是固定的,用一個少一個,所以要定期補充。

新生成激活碼:這種方式要求腳本具有生成激活碼的權限,同時一旦被人破解可以無限制生成激活碼,導緻驗證系統形同虛設了。

選用哪種方式,除了考慮它們優缺點以外,還要看你的驗證系統有沒有相關的功能,比如新生成激活碼的方式,就要求驗證系統支持用戶端注冊或者導入激活碼。

這期文章中我會用到讀取服務器文本的方式,預先把激活碼存在服務器文本,讀取一個删除一個。

②把激活碼寫入到輸入框中

這邊是需要靜态頁面修改元素的,使用UIP.SetAttribute命令,一行代碼而已,稍後看源碼就行。

(2)腳本中的邏輯注意事項:

這個注意事項是來自于腳本的限制說明:※每天可免費領取3張測試卡,測試時間為1小時

①限制每天3張測試卡,那麼需要有領取記錄,記錄可以存在腳本運行的本地設備,也可以存在于服務器端,兩者對比的話,存在本地容易些。

②存儲的要點:時間和張數

因為是每天三張,所以過了半夜12點要重新更新可測試數量,記錄好當天的日期,防止重複領取。

③限制1小時的測試時間,這個就是基本的網絡驗證,沒啥可說的。

(3)本地存儲的操作流程

選用的存儲媒介是數據(.db),因為這種後綴的文件普通人不常用到,沒有對應的工具不容易打開,這樣就可以達到隐藏的效果。

存儲的格式如下:

callkit功能怎麼開啟安卓(怎麼讓腳本可以領取免費測試卡)2

在數據庫表中有兩列數據,分别是time和num,代表日期和次數。

寫這部分邏輯框架需要考慮全面,大家跟着我一塊去想想這個邏輯:

第一步:判斷數據庫在手機/模拟器上是否存在

不存在:當前設備是首次使用腳本

存在:當前設備已經使用過

第二步:針對上面兩種情況分别處理

首次使用:那麼新建數據庫,寫入日期和次數1

callkit功能怎麼開啟安卓(怎麼讓腳本可以領取免費測試卡)3

非首次使用:要判斷當前表格裡面的time列中有沒有今天的日期數據。

沒有:今天還沒有使用過

有:今天已經使用。

第三步:繼續分情況處理

沒有今天的日期數據:在數據庫中寫入今天日期和次數1

有今天的日期數據:讀取數據庫中當天日期對應的num列中的次數,判斷次數是否小于3次

小于3次:今天還可以繼續使用,把今天日期對應的次數 1

不小于3次:今天免費測試次數用完。

這部分寫成代碼是:

Import "SQLite3.lua" Dim dbpath="/sdcard/pictures/abc.db" Dim t=DateTime.Format("%Y%m%d") If Dir.Exist(dbpath) = 0 Then showmessage "首次使用" sqlite3.SQLCreate(dbpath, "code", {"time","num"}) sqlite3.SQLInsert DBpath, "code", {"time":t, "num":1} Else dim ret=sqlite3.SQLSelect(DBpath, "code", "num", "WHERE time="&t) If Len(ret) = 0 Then showmessage "今天首次使用" sqlite3.SQLInsert DBpath, "code", {"time":t, "num":1} Else showmessage encode.TableToJson(ret) If cint(ret[1]["num"]) < 3 Then sqlite3.SQLUpdate DBpath, "code", {"num":ret[1]["num"] 1}, "WHERE time=" & t showmessage "第"&ret[1]["num"] 1&"次領卡" Else showmessage "今天3次測試卡已經領過了,明天再來" End If End If End If

在以上的代碼中,并沒有獲取測試卡的操作,僅僅是對測試卡需要獲取的記錄,我們寫每次寫入/修改數據庫内容都是要配合獲取測試的操作。

這其中包括建庫、當天首次使用、次數小于3等這幾種情況。

(4)讀取服務器上的文本

這一步需要一個php文件,完成讀取文本内容和删除文本内容的操作,把php文件和存有測試卡的文本放到服務器裡面,運行下面代碼就可以了。

需要這個文件可以加我微信xiaomu86119,備注【服務器文本】

Dim ip="http://192.168.1.3/File" //我建了一個file的文件夾,不是一定有這個目錄的 Dim 文件名="code" //文本名字 TracePrint url.get(ip&"/File.php?uid=6&txtid="&文件名&"&hid=1")

(5)寫入輸入框

Function 函數名1() Dim 測試卡="abc0001" uip.SetAttribute("輸入框1",{"初始文本":測試卡}) End Function

=正文完=

,

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

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

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