陳郁欣



摘要:針對疫情防控小區封閉式管理的需要,該文采用App Inventor作為開發工具、選用草料二維碼API平臺在線生成服務,設計了一款小區人員數字出入證手機打卡系統。實現了住戶信息建立、查改、刪除與導出,入門證二維碼生成、掃描打卡與出入時間、體溫數據登記等功能,方便了小區對出入人員的管理,高效滿足了疫情期間管控需求,探索了低成本、高效率手機應用系統解決方案思路。
關鍵詞:App Inventor;疫情防控;手機App;小區出入打卡;二維碼
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)16-0079-03
Abstract: To meet the needs of closed management of epidemic prevention and control communities, the paper uses App Inventor as a development tool and selects CLI QR codes API platform online generation service to design a mobile card punching system for community personnel's digital access cards. The functions of establishing, checking, deleting and exporting household information, generating QR codes for entry cards, scanning and punching cards, entering and leaving time, and registering body temperature data, etc., have been realized, which has facilitated the management of people entering and leaving the community, efficiently met the urgent need for control during the epidemic, and explored the idea of low-cost and high-efficiency mobile phone application system solutions.
Key words: App Inventor; epidemic prevention and control; mobile app; community pass card; QR code
1 背景
一場突如其來的疫情,打響了關系人民群眾生命健康安全的防疫阻擊戰。為筑起一道嚴密的疫情防控防線,各社區實行了憑證出入住宅小區,以減少人員流動,杜絕外來人員。但在使用過程,由于紙質出入證存在住戶忘記攜帶、紙張揉破、多人接觸增加安全風險等不足,本文提出了一種基于App Inventor設計的小區數字出入證手機打卡系統,可有效解決此問題,同時提高了出入時查驗、登記的工作效率。
2 系統總體設計
App Inventor是一款采用拖拽操作的可視化編程語言為基礎的Android應用開發工具,它摒棄了復雜的程序代碼,使用樂高積木式堆疊法來完成Android程序設計,大大提高降低了開發難度,提高了開發效率。由于居民小區人員少、數據量小、憑證出入功能簡單,App Inventor可以滿足實現系統需求,同時小區為封閉式管理,單用戶使用,本應用系統設計為單機版。
系統功能包括住戶信息建立、查詢、修改、刪除與導出,入門證二維碼的產生、掃描與出入時間、體溫數據登記,打卡信息導出等。
系統設計流程:打開App,登錄用戶主界面,按需選擇“新建住戶”“查改信息”“出入打卡”“導出記錄”四個模塊功能。選擇“新建住戶”功能,錄入住戶ID、姓名、電話、身份證號、住址、備注等,保存信息后,產生住戶ID二維碼,作為出入打卡數字證二維碼;當日常住戶出入小區時,選擇“出入打卡”功能,點擊“掃碼”,對持有人電子出入證進行掃碼,管理員根據掃碼獲得的住戶上次出入具體時間,依小區出入時間間隔規定,輸入體溫數據后,點擊“放行”完成打卡操作;選擇“查改記錄”功能,可依據身份證號對住戶信息進行查詢、修改與刪除;選擇“導出記錄”,可將所有住戶信息與打卡記錄導出為文本文件,最終通過手機“文件管理”導出記錄。系統功能設計流程如圖1所示。
3 主要功能設計實現
3.1 數據庫存取操作
3.1.1 數組組織
在App Inventor中有兩個數據庫組件——本地數據庫及網絡數據庫,它們都是NoSQL類型的數據庫[1],利用這兩個數據庫組件,App Inventor很容易實現數據的永久存儲。
它們以“標記-數值”的方式保存數據,“標記”是一個字符串,“值”是任意類型的數據,用戶通過“標記”來保存與提取數據,保存數據時使用的標記也用于之后對數據的提取。本應用系統因設計定位為單機版,數據不需要在手機之間分享,故使用本地數據庫組件完成數據的存貯使用。本應用系統數據示例如表1、表2所示。
一個數據庫組件可以看成是數據庫的一張表,對此我們分別使用兩個數據庫組件,命名為住戶信息數據庫、打卡記錄數據庫。
3.1.2 編寫程序
App Inventor為本地數據庫組件提供了內置功能模塊——請求數據塊和保存數據塊,用于從數據庫中存取數據。
這兩個數據塊有兩個參數,其中之一是“標記”。在使用該塊時,需要為標記提供具體的值,用于請求或保存相關的數據。另外,請求數據塊是一個有返回值的塊,因此必須定義一個變量來接收請求數據塊的返回值。當數據庫為空時,此時數據庫中不存在要訪問的標記,為此,請求數據塊提供了另一個參數——無標記返回。當調用請求數據塊時,要為這個參數指定具體的值,以便當數據不存在時,請求數據塊可以返回該參數的值。
App Inventor還提供了一個特別的事件處理程序——屏幕(Screen)初始化程序,屏幕啟動時會觸發該程序。本應用系統四個功能模塊均需進行數據庫的讀取操作,且“新建住戶”“查改信息”“出入打卡”三個模塊均利用啟動時屏幕初始化從數據庫中提取某些數據,以“出入打卡”功能模塊加載數據為例,程序編碼如圖2所示。
當讀取二維碼屏幕(Screen4)掃描結束后,打卡屏幕(Screen5)啟動,并將上一屏幕傳遞值賦給全局變量“掃得ID”,即該住戶ID ,同時在屏幕頁面顯示獲得的住戶ID。
建立二個請求數據塊分別讀取“住戶數據庫”“打卡數據庫”數據。這里“住戶數據庫”請求數據使用的標記為全局變量“住戶信息列表存儲標記”,返回值寫入“住戶信息列表”變量中,如果沒有與標記相對應的數據,則寫入空列表。 “打卡數據庫”請求數據使用的標記為全局變量“打卡信息列表存儲標記”,返回值寫入“打卡信息列表”變量中,如果沒有與標記相對應的數據,同樣寫入空列表。
調用“篩選住戶ID”過程,完成檢索“住戶數據庫”獲取該住戶ID的姓名、身份證號,手機號,住址信息,檢索“打卡數據庫”獲取該住戶ID最近一次的出入時間、出入狀態記錄,并顯示。
再看數據的保存操作。本地數據庫組件有一個內置的功能模塊——保存數據塊,用于數據的存儲操作。本應用系統“新建住戶”“查改信息”“打卡記錄”功能模塊均需進行數據庫存儲操作,如圖3所示為運用保存數據塊完成“新建住戶”功能住戶信息數據的存儲操作編碼。
首先,調用“已存住戶ID”過程,獲取住戶信息數據庫中已存住戶ID賦值給變量“記錄中住戶ID”, 運用“記錄中住戶ID”判斷本次住戶錄入信息是否重復,如果用戶本次錄入住戶ID非空或不重復,則將本次錄入的信息添加到“住戶信息列表”中,利用保存數據塊保存“住戶信息列表”到“住戶數據庫”,對話框組件顯示“保存成功”提示信息;如果用戶本次錄入住戶ID為空或數據庫中已存有該“住戶ID”,對話框組件顯示“住戶ID不能為空或重復”提示信息。
3.2 二維碼生成
草料二維碼API平臺提供了二維碼免費在線生成服務,用戶可以使用二維碼生成接口地址,調整URL參數中的二維碼內容(text),美化模板id(mhid)兩個參數,即可獲取二維碼下載頁面。API接口地址如下:
3.3 二維碼讀取
App Inventor提供了一個已經封裝好的二維碼掃描組件,在“出入打卡”功能模塊中,首先打開二維碼掃描屏幕,在該屏幕中用戶點擊掃描按鈕,條碼掃描器開始對電子出入證二維護碼進行讀掃,讀取該出入證住戶ID,掃描完成后,系統打開打卡功能屏幕并將掃描結果傳遞給打卡功能屏幕(Screen5)。本功能主要程序代碼如圖5所示。
3.4 導出記錄功能
App Inventor的數據存儲類組件中,有一個非可視組件--文件管理器,可以在設備上實現文件的讀或寫。通過數據庫組件存儲的記錄信息,用戶在正常環境中是無法查看的,所以我們首先提取數據庫中數據,再通過文件管理器組件寫入指定位置的文本文件中,即可實現數據庫記錄的導出。其主要程序代碼如圖6所示。
4 結束語
本文基于App Inventor開發環境設計提出了一款手機打卡App,實現了檔案建立、二維碼生成、掃碼打卡等功能。引用App Inventor項目的負責人Harold Abelson (MIT教授)的一句話 “App Inventor編寫的應用程序或許不是很完美,但它們卻是普通人都能做的,而且通常是在幾分鐘內就可完成。”[2] App Inventor適用功能簡單、結題期短的應用場景開發運用。本應用系統從需求提出到投入使用僅用了一個工作日,高效地解決了用戶亟須,且具有良好的用戶操作體驗,對小區住戶出入驗證、登記,方便靈活,得到用戶好評。本應用改用網絡數據庫組件,可輕松擴展為網絡版,也可運用在考勤打卡等其他場景。
參考文獻:
[1] 金從軍. App Inventor開發訓練營[M]. 北京: 人民郵電出版社, 2018: 163-167.
[2] 郭守超, 周睿, 鄧常梅, 等. 基于App Inventor和計算思維的信息技術課堂教學研究[J]. 中國電化教育, 2014(3): 91-96.
【通聯編輯:謝媛媛】