按鍵精靈怎麼判斷有沒有彈出?大家好,我是公衆号3分鐘學堂的郭立員~,接下來我們就來聊聊關于按鍵精靈怎麼判斷有沒有彈出?以下内容大家不妨參考一二希望能幫到您!
按鍵精靈怎麼判斷有沒有彈出
大家好,我是公衆号3分鐘學堂的郭立員~
今天内容是公告彈窗,用于腳本更新後的提示,如下圖:
實現這個功能的原理有這麼幾個:
①下拉框能夠自動執行選擇響應的函數
這一點是前提條件,就是說打開腳本後,如果有界面有下拉框,那麼下拉框寫的選擇響應函數代碼會自動執行,無需手動點擊觸發,這樣能達到自動彈窗的效果。
②讀取服務器文本
通過url.get命令獲取服務器上的文本内容,在内容中包含指定控制的字符,或者對應的鍵值對,還有公告信息内容
③“解析”文本内容中的控制字符(鍵值對)
這一步是代碼的核心内容,通過解析文本内容來控公告彈窗的狀态
④彈窗命令
Dialog.MsgBox
⑤本地存儲來判斷是否首次彈窗
原理就是這些,說一下實現步驟
①在界面加一個下拉框,用于自動彈窗代碼的啟動
②準備一個文本,内容如下
{"onoff":true,"first":true,"msg":"v1.003版本更新内容:\n\n 1.增加了公告彈窗\n 2.公告内容可以遠程控制"}
包含3組鍵值對,分别是控制是否彈窗、相同公告是否隻彈出一次、公告的内容。
這個文本放到服務器上,每次隻需要修改文本内容,就可以控制腳本彈窗。
③服務器文本内容的解析
讀取内容onoff 如果是true,說明腳本運行彈窗
first,如果是true,代表每次更新内容,公告彈窗隻彈出一次
msg是公告更新的内容
④判斷是否彈窗過
這一步是基于同一更新内容彈窗彈出次數的,如果是隻彈出一次,那麼就需要設備在本地記錄一下,已經彈出過了。
下面直接放我的範例代碼:
Function 函數名1()
Dim path="/sdcard/pictures/msg.txt"
Dim json=url.get("http://192.168.1.4/notice.txt")
Dim table=encode.jsontotable(json)
If table["onoff"] Then
If table["first"] Then
If Dir.Exist(path) = 0 Then
file.write path, table["msg"]
Dialog.MsgBox(table["msg"],0)
Else
If file.read(path) <> table["msg"] Then
file.write path, table["msg"]
Dialog.MsgBox(table["msg"],0)
End If
End If
Else
Dialog.MsgBox(table["msg"],0)
End If
End If
End Function
需要注意的地方:
我們公告内容通常都是包含漢字的,但是由于utf8編碼的漢字,如果直接用文本保存會有bom頭,在讀取時會在内容開始位置多一個問号,這個問題會導緻讀取鍵值的錯誤。
解決方法2個思路:
①使用第三方的文本編輯器,比如notepad
②去掉多出來的問号,比如正則匹配,隻保留{}内的東西,或者用删除命令删除首個字符。
還有關于沒有服務器的問題,免費的在線文檔也行,比如石墨文檔、騰訊文檔等等,
這期文章主要給大家提供一個“雲控”的思路。
好了,内容就這些,又多了一個花裡胡哨的功能,如果覺得還行幫忙點個贊~
=正文完=