App Inventor學習記錄161-用webviewers讀取上傳到系統的html檔

由於 thingspeak有提供 ifram的程式碼,這次把 iframe程式碼貼到記事本中後,另存為 html的副檔名,上傳到 app inventor中,再用 webviews的元件去讀取它。

記錄一下。
App Inventor學習記錄161-用webviewers讀取上傳到系統的html檔


這次完成的範例如下。

由於 thingspeak免費帳戶的權限是 15秒內只能上傳一筆資料。在這裡先點擊隨機數據按鈕,隨機產生 8個數據,再點擊資料送出按鈕,把資料送到 thingspeak中。

然後就會出現倒數計時15秒的標籤。等時間到之後,才能送出第 2筆資料。

再從清單選擇器中選擇要顯示那一個圖表。選擇後,就會用 webviewers開始對應的 html檔案。


畫面配置的部份如下。

上半部份,就是標籤和文字輸入盒的組合。
接著是 listpicker用來選擇圖表。
webviewer,用來讀取 html檔案。


全部的程式碼如下。


第 1部份的程式碼記錄。

建立一個變數,這個變數的內容就是 thinkspeak的上傳資料的路徑。
這部份的用法已經在上傳資料到 thingspeak用的外掛~ThingSpeak這篇中說明過了,請參考。


第 2部份的程式碼記錄。

這個是要倒數的秒數。


第 3部份的程式碼記錄。

數據列表這個清單,列出的項目,就是要給 listpicker用的顯示項目。


第 4部份的程式碼記錄。

圖表網址列表這個清單,對應的就是我們上傳的 html檔的位置。
要用 webviewer打開上傳到 app inventor的 html檔的時候,所用的網址格式是用 https://localhost/檔名的組合,這個要特別的注意一下。


第 5部份的程式碼記錄。

when screen1.initialize,當程式初始化的時候。
set listpicker 1.elements,設定清單選擇器的元素為數據列表這個清單。


第 6部份的程式碼記錄。

when button1.click,當按鈕 1,也就是資料送出按鈕被按下的時候。
拉出 thingspeak外掛中的積木,把 api key的值,跟 field 1~8的值都設定一下。

call thingspeak.upload data,呼叫 thingspeak外掛上傳資料。

call webveiwer1.go to url,呼叫 webviewer網路瀏覽器打開 homeurl這個網址。這個網址我在屬性中有設定成 https://localhost/1.html,也就是資料一上傳,就先打開 1.html這個檔案。

set clock 1.timereanbled to true,啟動計時器1 。


第 7部份的程式碼說明。

when button 2.click,當按鈕 2,也就是隨機取值的按鈕按下之後。
把文字輸入盒 1~8的值,設定成 1~30之間的隨機數值。


第 8部份的程式碼說明。

when listpicker.afterpicking,當清單選擇器 1選擇完成之後。
set webviewer 1.homeurl,設定一下網路瀏覽器元件的主網址。
這裡的 listpicker 1.selection index清單選擇器選中項是數據列表中的第幾個的意思
數據列表中的內容依照順序是數據 1圖表,一直到數據 8圖表。假設我們選擇的是數據 6圖表這一項, selection index的值就是 6,以此類推。

我們再用 selection index的值去取得圖表網址列表清單中的第六項。
然後呼叫網路瀏覽器前往清單圖表網址列表中第 6項的網址。


第 9部份的程式碼記錄。

當計時器開始計時的時候。
如果變數_倒數的值等於 0的話,設定 label 9的文字為”可以再次送出資料”
把變數_倒數的值設回 15。
關閉計時器。

不然的話,把變數_倒數的值設定成每次計時就減 1。
把 label 9的文字,設定成,還有幾秒後,可以重新送出資料。


補充一下 thingspeak取得嵌入代碼的過程。

登入 thingspeak之後,在圖表的上方,可以找到按鈕。
點擊之後,把視窗內的程式碼複製一下。


打開記事本,把取得的程式碼貼上。


把檔案另存成 html。


再上傳到 app inventor的素材中就可以了。


這次的 aia檔的下載連結如下:
NO_161_html_iframe.aia

之前介紹過的一些 appinventor的使用記錄,都整理在下面這個頁面上了。
APP INVENTOR學習記錄及資源整理頁面

發佈留言