• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      給App插上“云服務(wù)”的翅膀

      2014-11-17 17:46謝作如
      中國(guó)信息技術(shù)教育 2014年21期
      關(guān)鍵詞:云服務(wù)組件管理系統(tǒng)

      謝作如

      開設(shè)App Inventor課程一段時(shí)間后,學(xué)生的學(xué)習(xí)熱情被點(diǎn)燃了,開發(fā)了各種各樣的App。當(dāng)然,很多新的問(wèn)題和新的想法也提出來(lái)了,如我開發(fā)的App能不能實(shí)時(shí)獲取網(wǎng)絡(luò)上的天氣預(yù)報(bào)等問(wèn)題大都和Web應(yīng)用有關(guān)。其實(shí)大部分手機(jī)App都具有將信息上傳到Web,或者從Web中獲取信息的功能。App Inventor中提供了Web組件,也能夠?qū)崿F(xiàn)上述的功能。App和Web的互動(dòng),其原理和現(xiàn)在很流行的“云計(jì)算”、“云服務(wù)”是一樣的。

      ● 項(xiàng)目描述

      設(shè)計(jì)一款A(yù)pp小游戲,用戶能夠?qū)⒂螒虻梅稚蟼鞯骄W(wǎng)絡(luò),并且和其他玩這款A(yù)pp的用戶比較,統(tǒng)計(jì)出“擊敗**%的用戶”的提示,增加游戲的互動(dòng)性。

      ● 項(xiàng)目分析

      要完成這個(gè)項(xiàng)目,我們首先需要一個(gè)專用的Web服務(wù),這一Web服務(wù)的數(shù)據(jù)庫(kù)能存儲(chǔ)App提交的信息,并且能返回相關(guān)的統(tǒng)計(jì)信息。Web服務(wù)要提供API接口,App Inventor的連接組件中提供了Web組件,可以通過(guò)這一組件與Web服務(wù)的API接口進(jìn)行互動(dòng),流程如圖1所示。

      實(shí)際上,連接Web服務(wù)的手機(jī)App遠(yuǎn)遠(yuǎn)不只是一個(gè),而是N個(gè),構(gòu)成了云服務(wù)的模型。

      目前網(wǎng)絡(luò)上似乎還沒(méi)有哪家服務(wù)商提供了類似的云服務(wù),尤其是能夠讓App Inventor的Web控件簡(jiǎn)單訪問(wèn)的云服務(wù)。為了能讓學(xué)生們開發(fā)的App具有云服務(wù)的功能,我使用動(dòng)態(tài)語(yǔ)言Asp,開發(fā)了一個(gè)“手機(jī)App云用戶管理系統(tǒng)”,上傳到學(xué)校的服務(wù)器,供學(xué)生使用。

      “手機(jī)App云用戶管理系統(tǒng)”是一個(gè)多用戶的系統(tǒng),支持多個(gè)App應(yīng)用同時(shí)使用,能夠?qū)崿F(xiàn)用戶注冊(cè)、用戶登錄、更新密碼、更新得分和綜合查詢等功能。系統(tǒng)提供了一個(gè)簡(jiǎn)單的Api接口,通過(guò)這個(gè)接口與手機(jī)App互動(dòng)。Api文件的具體使用說(shuō)明的地址為:http://www.wzms.cn/tot/reg/index.asp。

      1.接口參數(shù)

      本接口支持POST和GET兩種形式提交參數(shù),參數(shù)分為appid、action、regname、regpass、newregpass、score等六個(gè)。接口文件地址和各種參數(shù)合并為一個(gè)完成的URL地址后,通過(guò)Web組件提交,即可獲取返回的信息。具體的參數(shù)說(shuō)明如下頁(yè)表。

      2.數(shù)據(jù)返回格式

      前兩個(gè)字符為ok或者no,后面則為其他具體的信息,如統(tǒng)計(jì)信息,分別用“;”分隔。

      3.使用范例

      因?yàn)檫@一系統(tǒng)提供給更多的學(xué)生使用,支持多個(gè)App同時(shí)使用,所以設(shè)計(jì)了appid參數(shù)來(lái)區(qū)分。下面以appid等于1為例進(jìn)行說(shuō)明。

      ①將用戶xzr的分?jǐn)?shù)更新為99。

      需要的參數(shù)為:appid、action、regname、score。URL為:http://www.wzms.cn/tot/reg/ index.asp?appid=1?name=xzr&score=99&action=5。

      返回信息為:True:ok,更新成功!名次:1;有效分?jǐn)?shù):4;最高:99;最低:30;平均:79.25。

      注:用戶如果不存在,就自動(dòng)添加密碼為“123456”的用戶,同時(shí)返回上述的信息。

      ②統(tǒng)計(jì)Appid為1的應(yīng)用程序注冊(cè)用戶情況。

      需要的參數(shù)為:appid、action。URL為:http://www.wzms.cn/tot/reg/index.asp?appid=1&action=6。

      返回信息為:True:ok,注冊(cè)人數(shù):4;有效分?jǐn)?shù):4;最高:99;最低:30;平均:79.25。

      注:如果appid不存在,系統(tǒng)則輸出:ok,注冊(cè)人數(shù):0;有效分?jǐn)?shù):0;最高:;最低:;平均:,如果需要詳細(xì)的使用文檔,請(qǐng)?jiān)L問(wèn)http://www.wzms.cn/tot/reg/index.htm。

      ● 編程實(shí)現(xiàn)

      有了手機(jī)App云用戶管理系統(tǒng)的支持,App Inventor端的編程主要是通過(guò)Web組件提交參數(shù),然后使用文本組件的各種函數(shù),在返回信息中找到需要的數(shù)據(jù)。

      我找了一個(gè)打地鼠的學(xué)生作品,這個(gè)小游戲已經(jīng)能夠通過(guò)TinyDB組件來(lái)存儲(chǔ)并且讀取最高的游戲成績(jī)。我在這一基礎(chǔ)上增加了Web組件,使其支持通過(guò)Web存儲(chǔ)用戶的游戲得分,還能比較不同的游戲用戶的得分情況,輸出統(tǒng)計(jì)結(jié)果,如“擊敗90%的用戶”之類。

      1.程序界面

      Web和TinyDB都是為非可視組件。Web組件位于“連接組件”區(qū)域,這一組件的作用為發(fā)送HTTP的GET、POST、PUT及DELETE請(qǐng)求(如圖2)。

      圖2

      2.生成隨機(jī)用戶名

      為了更容易理解,我將程序中與生成、讀取用戶名無(wú)關(guān)的代碼去除。程序在第一次時(shí)要生成一個(gè)隨機(jī)用戶,并存儲(chǔ)在TinyDB中。變量(Tag)score存儲(chǔ)的是游戲得分,regname存儲(chǔ)的是用戶名。如果從TingDB中讀出的regname為0,則會(huì)生成一個(gè)以5位的數(shù)字組成的用戶名(如圖3)。

      3.提交成績(jī)到網(wǎng)絡(luò)

      游戲結(jié)束的時(shí)候,將成績(jī)提交到網(wǎng)絡(luò)。geturl是自定義的過(guò)程,在游戲結(jié)束的時(shí)候調(diào)用這一過(guò)程,需要提交的參數(shù)為regname和score(如下頁(yè)圖4)。

      4.編寫geturl過(guò)程

      geturl過(guò)程的功能僅僅為給Web組件設(shè)置Url地址,然后調(diào)用Get方法(如下頁(yè)圖5)。Web組件收到返回的信息時(shí),會(huì)觸發(fā)GotText事件。

      5.編寫GotText事件

      最核心的工作就是在GotText事件中處理返回的信息,代碼如下頁(yè)圖7所示。根據(jù)前面的說(shuō)明,GotText事件將收到類似如下的信息:ok,更新成功!名次:1;有效分?jǐn)?shù):4;最高:99;最低:30;平均:79.25。endprint

      首先要用segment函數(shù)取出前兩個(gè)字符,如果等于“ok”,則繼續(xù)進(jìn)行提取數(shù)據(jù)。segment函數(shù)類似VB中的Mid函數(shù),能夠從給定的文本中提取指定起點(diǎn)及指定長(zhǎng)度的文本片段。需要注意的是,App Inventor中無(wú)論是列表還是文本,都是從1開始計(jì)數(shù)的,而不是0。

      要統(tǒng)計(jì)這一得分能擊敗多少用戶,需要在反饋信息中提取名次和有效分?jǐn)?shù)(大于0的分?jǐn)?shù))這兩個(gè)數(shù)據(jù)。其實(shí)處理起來(lái)也不麻煩,先用“;”分割字符串,再用“:”分割。取出后用公式計(jì)算:擊敗率=(有效分?jǐn)?shù)-名次+1)/有效分?jǐn)?shù)。

      可是,用App Inventor寫數(shù)學(xué)表達(dá)式卻有點(diǎn)麻煩,構(gòu)建出來(lái)的積木非常龐大,只好再用個(gè)變量temp,讓代碼看起來(lái)稍微短一些。

      6.測(cè)試代碼

      游戲結(jié)束的時(shí)候,看到熟悉的提示跳出來(lái),是不是非常激動(dòng)?這可是插上了云服務(wù)的翅膀的App(如圖7)!

      ● 拓展應(yīng)用

      本項(xiàng)目雖然僅僅完成了通過(guò)網(wǎng)絡(luò)來(lái)比較游戲得分的功能,但我提供的“手機(jī)App云用戶管理系統(tǒng)”還可以實(shí)現(xiàn)其他的功能,如用戶注冊(cè)功能。我們甚至還可以利用這一更新得分的功能,開發(fā)出更加有趣的互動(dòng)功能,如用支持WiFi訪問(wèn)的機(jī)器人或者其他智能產(chǎn)品,定時(shí)去讀取這一Api接口,根據(jù)返回的數(shù)據(jù)不同而執(zhí)行不同的動(dòng)作,這就是物聯(lián)網(wǎng)智能產(chǎn)品的遠(yuǎn)程控制功能。

      有了上面的范例,實(shí)時(shí)獲取天氣預(yù)報(bào)的操作就顯得很簡(jiǎn)單了,只要你找到一個(gè)穩(wěn)定的更新及時(shí)的天氣預(yù)報(bào)網(wǎng)站,通過(guò)分隔字符串的形式,把需要的數(shù)據(jù)提取出來(lái)即可。App Inventor的Web組件功能非常強(qiáng)大,不要說(shuō)提交分?jǐn)?shù),利用其支持POST,并且能夠設(shè)置RequestHeaders的功能,我們甚至可以做出類似云筆記之類的應(yīng)用來(lái)。

      App Inventor的Web組件還支持Josn格式。使用JsonTextDecode方法,可以對(duì)給定的json格式的值進(jìn)行解碼,生成與App Inventor對(duì)應(yīng)的值。這樣一來(lái),對(duì)Web組件返回信息的處理將更加簡(jiǎn)單。手機(jī)App云用戶管理系統(tǒng)也將提供支持Josn的接口。

      ● 總結(jié)

      本項(xiàng)目主要演示了App中云服務(wù)功能的開發(fā)。雖然簡(jiǎn)單,但給學(xué)生們提供的卻是一條增強(qiáng)手機(jī)App功能的開發(fā)途徑,能初步體會(huì)云計(jì)算的功能和優(yōu)勢(shì)。很多專家都曾經(jīng)提出,云計(jì)算將帶來(lái)手機(jī)領(lǐng)域下一場(chǎng)革命,手機(jī)僅僅是網(wǎng)絡(luò)應(yīng)用的“瘦客戶端”,讓服務(wù)器做復(fù)雜、繁重的計(jì)算、存儲(chǔ)工作吧。

      (本文提到的范例可以通過(guò)作者的新浪博客獲取,地址為:http://blog.sina.com.cn/xiezuoru/)endprint

      首先要用segment函數(shù)取出前兩個(gè)字符,如果等于“ok”,則繼續(xù)進(jìn)行提取數(shù)據(jù)。segment函數(shù)類似VB中的Mid函數(shù),能夠從給定的文本中提取指定起點(diǎn)及指定長(zhǎng)度的文本片段。需要注意的是,App Inventor中無(wú)論是列表還是文本,都是從1開始計(jì)數(shù)的,而不是0。

      要統(tǒng)計(jì)這一得分能擊敗多少用戶,需要在反饋信息中提取名次和有效分?jǐn)?shù)(大于0的分?jǐn)?shù))這兩個(gè)數(shù)據(jù)。其實(shí)處理起來(lái)也不麻煩,先用“;”分割字符串,再用“:”分割。取出后用公式計(jì)算:擊敗率=(有效分?jǐn)?shù)-名次+1)/有效分?jǐn)?shù)。

      可是,用App Inventor寫數(shù)學(xué)表達(dá)式卻有點(diǎn)麻煩,構(gòu)建出來(lái)的積木非常龐大,只好再用個(gè)變量temp,讓代碼看起來(lái)稍微短一些。

      6.測(cè)試代碼

      游戲結(jié)束的時(shí)候,看到熟悉的提示跳出來(lái),是不是非常激動(dòng)?這可是插上了云服務(wù)的翅膀的App(如圖7)!

      ● 拓展應(yīng)用

      本項(xiàng)目雖然僅僅完成了通過(guò)網(wǎng)絡(luò)來(lái)比較游戲得分的功能,但我提供的“手機(jī)App云用戶管理系統(tǒng)”還可以實(shí)現(xiàn)其他的功能,如用戶注冊(cè)功能。我們甚至還可以利用這一更新得分的功能,開發(fā)出更加有趣的互動(dòng)功能,如用支持WiFi訪問(wèn)的機(jī)器人或者其他智能產(chǎn)品,定時(shí)去讀取這一Api接口,根據(jù)返回的數(shù)據(jù)不同而執(zhí)行不同的動(dòng)作,這就是物聯(lián)網(wǎng)智能產(chǎn)品的遠(yuǎn)程控制功能。

      有了上面的范例,實(shí)時(shí)獲取天氣預(yù)報(bào)的操作就顯得很簡(jiǎn)單了,只要你找到一個(gè)穩(wěn)定的更新及時(shí)的天氣預(yù)報(bào)網(wǎng)站,通過(guò)分隔字符串的形式,把需要的數(shù)據(jù)提取出來(lái)即可。App Inventor的Web組件功能非常強(qiáng)大,不要說(shuō)提交分?jǐn)?shù),利用其支持POST,并且能夠設(shè)置RequestHeaders的功能,我們甚至可以做出類似云筆記之類的應(yīng)用來(lái)。

      App Inventor的Web組件還支持Josn格式。使用JsonTextDecode方法,可以對(duì)給定的json格式的值進(jìn)行解碼,生成與App Inventor對(duì)應(yīng)的值。這樣一來(lái),對(duì)Web組件返回信息的處理將更加簡(jiǎn)單。手機(jī)App云用戶管理系統(tǒng)也將提供支持Josn的接口。

      ● 總結(jié)

      本項(xiàng)目主要演示了App中云服務(wù)功能的開發(fā)。雖然簡(jiǎn)單,但給學(xué)生們提供的卻是一條增強(qiáng)手機(jī)App功能的開發(fā)途徑,能初步體會(huì)云計(jì)算的功能和優(yōu)勢(shì)。很多專家都曾經(jīng)提出,云計(jì)算將帶來(lái)手機(jī)領(lǐng)域下一場(chǎng)革命,手機(jī)僅僅是網(wǎng)絡(luò)應(yīng)用的“瘦客戶端”,讓服務(wù)器做復(fù)雜、繁重的計(jì)算、存儲(chǔ)工作吧。

      (本文提到的范例可以通過(guò)作者的新浪博客獲取,地址為:http://blog.sina.com.cn/xiezuoru/)endprint

      首先要用segment函數(shù)取出前兩個(gè)字符,如果等于“ok”,則繼續(xù)進(jìn)行提取數(shù)據(jù)。segment函數(shù)類似VB中的Mid函數(shù),能夠從給定的文本中提取指定起點(diǎn)及指定長(zhǎng)度的文本片段。需要注意的是,App Inventor中無(wú)論是列表還是文本,都是從1開始計(jì)數(shù)的,而不是0。

      要統(tǒng)計(jì)這一得分能擊敗多少用戶,需要在反饋信息中提取名次和有效分?jǐn)?shù)(大于0的分?jǐn)?shù))這兩個(gè)數(shù)據(jù)。其實(shí)處理起來(lái)也不麻煩,先用“;”分割字符串,再用“:”分割。取出后用公式計(jì)算:擊敗率=(有效分?jǐn)?shù)-名次+1)/有效分?jǐn)?shù)。

      可是,用App Inventor寫數(shù)學(xué)表達(dá)式卻有點(diǎn)麻煩,構(gòu)建出來(lái)的積木非常龐大,只好再用個(gè)變量temp,讓代碼看起來(lái)稍微短一些。

      6.測(cè)試代碼

      游戲結(jié)束的時(shí)候,看到熟悉的提示跳出來(lái),是不是非常激動(dòng)?這可是插上了云服務(wù)的翅膀的App(如圖7)!

      ● 拓展應(yīng)用

      本項(xiàng)目雖然僅僅完成了通過(guò)網(wǎng)絡(luò)來(lái)比較游戲得分的功能,但我提供的“手機(jī)App云用戶管理系統(tǒng)”還可以實(shí)現(xiàn)其他的功能,如用戶注冊(cè)功能。我們甚至還可以利用這一更新得分的功能,開發(fā)出更加有趣的互動(dòng)功能,如用支持WiFi訪問(wèn)的機(jī)器人或者其他智能產(chǎn)品,定時(shí)去讀取這一Api接口,根據(jù)返回的數(shù)據(jù)不同而執(zhí)行不同的動(dòng)作,這就是物聯(lián)網(wǎng)智能產(chǎn)品的遠(yuǎn)程控制功能。

      有了上面的范例,實(shí)時(shí)獲取天氣預(yù)報(bào)的操作就顯得很簡(jiǎn)單了,只要你找到一個(gè)穩(wěn)定的更新及時(shí)的天氣預(yù)報(bào)網(wǎng)站,通過(guò)分隔字符串的形式,把需要的數(shù)據(jù)提取出來(lái)即可。App Inventor的Web組件功能非常強(qiáng)大,不要說(shuō)提交分?jǐn)?shù),利用其支持POST,并且能夠設(shè)置RequestHeaders的功能,我們甚至可以做出類似云筆記之類的應(yīng)用來(lái)。

      App Inventor的Web組件還支持Josn格式。使用JsonTextDecode方法,可以對(duì)給定的json格式的值進(jìn)行解碼,生成與App Inventor對(duì)應(yīng)的值。這樣一來(lái),對(duì)Web組件返回信息的處理將更加簡(jiǎn)單。手機(jī)App云用戶管理系統(tǒng)也將提供支持Josn的接口。

      ● 總結(jié)

      本項(xiàng)目主要演示了App中云服務(wù)功能的開發(fā)。雖然簡(jiǎn)單,但給學(xué)生們提供的卻是一條增強(qiáng)手機(jī)App功能的開發(fā)途徑,能初步體會(huì)云計(jì)算的功能和優(yōu)勢(shì)。很多專家都曾經(jīng)提出,云計(jì)算將帶來(lái)手機(jī)領(lǐng)域下一場(chǎng)革命,手機(jī)僅僅是網(wǎng)絡(luò)應(yīng)用的“瘦客戶端”,讓服務(wù)器做復(fù)雜、繁重的計(jì)算、存儲(chǔ)工作吧。

      (本文提到的范例可以通過(guò)作者的新浪博客獲取,地址為:http://blog.sina.com.cn/xiezuoru/)endprint

      猜你喜歡
      云服務(wù)組件管理系統(tǒng)
      基于單片機(jī)MCU的IPMI健康管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      創(chuàng)建Vue組件npm包實(shí)戰(zhàn)分析
      光伏組件熱斑對(duì)發(fā)電性能的影響
      基于物聯(lián)網(wǎng)的IT運(yùn)維可視化管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      智能機(jī)械臂
      基于分布式數(shù)據(jù)庫(kù)Cedar的高效工單管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      云服務(wù)環(huán)境中低碳型教育信息化模式研究
      云服務(wù)環(huán)境下的高校協(xié)同創(chuàng)新研究
      基于云服務(wù)的加密式門禁系統(tǒng)設(shè)計(jì)
      嵌入式組件技術(shù)的研究及應(yīng)用
      双江| 普陀区| 怀宁县| 台东市| 泸水县| 普陀区| 年辖:市辖区| 响水县| 虹口区| 孝昌县| 杭锦后旗| 曲松县| 江都市| 高青县| 眉山市| 乡宁县| 穆棱市| 扶沟县| 筠连县| 鹤岗市| 定结县| 吉木萨尔县| 吉林市| 杭锦后旗| 东阿县| 六安市| 湖口县| 扎囊县| 石家庄市| 木里| 墨脱县| 安国市| 县级市| 泰州市| 行唐县| 新宾| 临沧市| 榕江县| 大足县| 宜兴市| 神木县|