版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Android物聯(lián)網(wǎng)應(yīng)用程序開(kāi)發(fā)資源轉(zhuǎn)化系統(tǒng)教材遼寧輕工職業(yè)學(xué)院遼寧輕工職業(yè)學(xué)院任務(wù)實(shí)現(xiàn)知識(shí)準(zhǔn)備任務(wù)目標(biāo)目 錄遼寧輕工職業(yè)學(xué)院通過(guò)網(wǎng)絡(luò)通信以及WebView組件時(shí)時(shí)讀取遠(yuǎn)程攝像頭所拍攝到的信息讀取至服務(wù)器端。 遼寧輕工職業(yè)學(xué)院任務(wù)2 終端遠(yuǎn)程控制攝像頭項(xiàng)目8 數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)遼寧輕工職業(yè)學(xué)院【任務(wù)目標(biāo)】1. 掌握Android中URL的基本知識(shí)2. 掌握URL讀取網(wǎng)絡(luò)資源的方法3. 掌握HTTP方式訪問(wèn)網(wǎng)絡(luò)的方法4. 掌握HttpURLConnection與HttpClient接口的用法5. 掌握WebView組件的用法 遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】URL(Uniform Resource Lo
2、cator)對(duì)象代表統(tǒng)一資源定位器,它是指向互聯(lián)網(wǎng)”資源”的指針。資源可以是簡(jiǎn)單的文件或目錄,也可以是對(duì)更復(fù)雜的對(duì)象的引用,例如對(duì)數(shù)據(jù)庫(kù)或搜索引擎的查詢。通常情況而言,URL可以由協(xié)議名、主機(jī)、端口和資源組成。格式:protocal:/host:port/resourceName;URL類(lèi)提供了一些構(gòu)造器用于創(chuàng)建URL對(duì)象,一旦獲得URL對(duì)象之后,可以調(diào)用如下常用方法來(lái)訪問(wèn)這些URL對(duì)應(yīng)的資源。URL請(qǐng)求的類(lèi)別分為二類(lèi),GET與POST請(qǐng)求。二者的區(qū)別在于:get請(qǐng)求可以獲取靜態(tài)頁(yè)面,也可以把參數(shù)放在URL字串后面,傳遞給servlet。post與get的不同之處在于post的參數(shù)不是放在UR
3、L字串里面,而是放在http請(qǐng)求的正文內(nèi)。 1. HttpURLConnection接口遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】HttpURLConnection是一種多用途、輕量極的HTTP客戶端,使用它來(lái)進(jìn)行HTTP操作可以適用于大多數(shù)的應(yīng)用程序。雖然HttpURLConnection的API提供的比較簡(jiǎn)單,但是同時(shí)這也使得我們可以更加容易地去使用和擴(kuò)展它。在 類(lèi)中,HttpURLConnection類(lèi)是一種訪問(wèn)HTTP資源的方式。HttpURLConnection繼承自URLConnection,可用于向指定網(wǎng)站發(fā)送GET請(qǐng)求、POST請(qǐng)求。它在URLConnection的基礎(chǔ)上提供了如下便捷的方法
4、:(1)int getResponseCode():獲取服務(wù)器的響應(yīng)代碼。 (2)String getResponseMessage():獲取服務(wù)器的響應(yīng)消息。 (3)String getResponseMethod():獲取發(fā)送請(qǐng)求的方法。 (4)void setRequestMethod(String method):設(shè)置發(fā)送請(qǐng)求的方法。1. HttpURLConnection接口遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】 在一般情況下,如果只是需要Web站點(diǎn)的某個(gè)簡(jiǎn)單頁(yè)面提交請(qǐng)求并獲取服務(wù)器響應(yīng),HttpURLConnection完全可以勝任。但在絕大部分情況下,Web站點(diǎn)的網(wǎng)頁(yè)可能沒(méi)這么簡(jiǎn)單,這些頁(yè)
5、面并不是通過(guò)一個(gè)簡(jiǎn)單的URL就可訪問(wèn)的,可能需要用戶登錄而且具有相應(yīng)的權(quán)限才可訪問(wèn)該頁(yè)面。在這種情況下,就需要涉及Session、Cookie的處理了,如果打算使用HttpURLConnection來(lái)處理這些細(xì)節(jié),當(dāng)然也是可能實(shí)現(xiàn)的,只是處理起來(lái)難度就大了。 HttpURLConnection的connect()函數(shù),實(shí)際上只是建立了一個(gè)與服務(wù)器的tcp連接,并沒(méi)有實(shí)際發(fā)送http請(qǐng)求。無(wú)論是post還是get,http請(qǐng)求實(shí)際上直到HttpURLConnection的getInputStream()這個(gè)函數(shù)里面才正式發(fā)送出去。1. HttpURLConnection接口遼寧輕工職業(yè)學(xué)院【知識(shí)
6、準(zhǔn)備】 HttpURLConnection是基于HTTP協(xié)議的,其底層通過(guò)socket通信實(shí)現(xiàn)。如果不設(shè)置超時(shí)(timeout),在網(wǎng)絡(luò)異常的情況下,可能會(huì)導(dǎo)致程序僵死而不繼續(xù)往下執(zhí)行。可以通過(guò)以下兩個(gè)語(yǔ)句來(lái)設(shè)置相應(yīng)的超時(shí):System.setProperty( .client.defaultConnectTimeout, 超時(shí)毫秒數(shù)字符串);System.setProperty( .client.defaultReadTimeout, 超時(shí)毫秒數(shù)字符串);2. HttpClient接口遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】 簡(jiǎn)單來(lái)說(shuō),HttpClient就是一個(gè)增強(qiáng)版的HttpURLConnectio
7、n,HttpURLConnection可以做的事情HttpClient全部可以做; HttpURLConnection沒(méi)有提供的有些功能,HttpClient也提供了,但它只是關(guān)注于如何發(fā)送請(qǐng)求、接收響應(yīng),以及管理HTTP連接。使用HttpClient發(fā)送請(qǐng)求、接收響應(yīng)很簡(jiǎn)單,只要如下幾步即可。2. HttpClient接口遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】1)創(chuàng)建HttpClient對(duì)象。2)如果需要發(fā)送GET請(qǐng)求,創(chuàng)建HttpGet對(duì)象;如果需要發(fā)送POST請(qǐng)求,創(chuàng)建HttpPost對(duì)象。3)如果需要發(fā)送請(qǐng)求參數(shù),可調(diào)用HttpGet、HttpPost共同的setParams(HetpParam
8、s params)方法來(lái)添加請(qǐng)求參數(shù);對(duì)于HttpPost對(duì)象而言,也可調(diào)用setEntity(HttpEntity entity)方法來(lái)設(shè)置請(qǐng)求參數(shù)。2. HttpClient接口遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】4)調(diào)用HttpClient對(duì)象的execute(HttpUriRequest request)發(fā)送請(qǐng)求,執(zhí)行該方法返回一個(gè)HttpResponse。5)調(diào)用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可獲取服務(wù)器的響應(yīng)頭;調(diào)用HttpResponse的getEntity()方法可獲取HttpEntity對(duì)象,該對(duì)象包裝了
9、服務(wù)器的響應(yīng)內(nèi)容。程序可通過(guò)該對(duì)象獲取服務(wù)器的響應(yīng)內(nèi)容。2. HttpClient接口遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】 在Android 2.2版本之前,HttpClient擁有較少的bug,因此使用它是最好的選擇。而在Android 2.3版本及以后,HttpURLConnection則是最佳的選擇。它的API簡(jiǎn)單,體積較小,因而非常適用于Android項(xiàng)目。壓縮和緩存機(jī)制可以有效地減少網(wǎng)絡(luò)訪問(wèn)的流量,在提升速度和省電方面也起到了較大的作用。對(duì)于新的應(yīng)用程序應(yīng)該更加偏向于使用HttpURLConnection,因?yàn)樵谝院蟮墓ぷ鳟?dāng)中我們也會(huì)將更多的時(shí)間放在優(yōu)化HttpURLConnection上面
10、。3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】(1)Webkit Android手機(jī)中內(nèi)置了一款高性能webkit內(nèi)核瀏覽器,WebKit是Mac OS X v10.3及以上版本所包含的軟件框架(對(duì)v10.2.7及以上版本也可通過(guò)軟件更新獲?。?。 同時(shí),WebKit也是Mac OS X的Safari網(wǎng)頁(yè)瀏覽器的基礎(chǔ)。WebKit是一個(gè)開(kāi)源項(xiàng)目,主要由KDE的KHTML修改而來(lái)并且包含了一些來(lái)自蘋(píng)果公司的一些組件。3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】(2)WebView? WebView可是個(gè)好東西,作用相當(dāng)于一個(gè)迷你的瀏覽器,采用Webkit內(nèi)核,因此完美支
11、持html、javascript、css等。有時(shí),我們完全可以把UI甚至數(shù)據(jù)處理都交給WebView,配合PHP等服務(wù)端程序,這樣Android開(kāi)發(fā)就變成了網(wǎng)頁(yè)開(kāi)發(fā),可以省很多精力。3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】(3)Android實(shí)現(xiàn)WebView方法第一種方法1)要在Activity中實(shí)例化WebView組件:WebView webView = new WebView(this)。2)調(diào)用WebView的loadUrl()方法,設(shè)置WevView要顯示的網(wǎng)頁(yè): 互聯(lián)網(wǎng)用:webView.loadUrl( ); 本地文件用:webView.loadUrl(file
12、:/ android_asset/XX.html); 本地文件存放在:assets 文件中。3)調(diào)用Activity的setContentView( )方法來(lái)顯示網(wǎng)頁(yè)視圖。3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】3)調(diào)用Activity的setContentView( )方法來(lái)顯示網(wǎng)頁(yè)視圖。4)用WebView點(diǎn)鏈接看了很多頁(yè)以后為了讓W(xué)ebView支持回退功能,需要覆蓋Activity類(lèi)的onKeyDown()方法,如果不做任何處理,點(diǎn)擊系統(tǒng)回退鍵,整個(gè)瀏覽器會(huì)調(diào)用finish()而結(jié)束自身,而不是回退到上一頁(yè)面。5)需要在AndroidManifest.xml文件中添加權(quán)
13、限,否則會(huì)出現(xiàn)Web page not available錯(cuò)誤。添加權(quán)限如下: 3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】第二種方法1)在布局文件中聲明WebView。2)在Activity中實(shí)例化WebView。3)調(diào)用WebView的loadUrl()方法,設(shè)置WebView要顯示的網(wǎng)頁(yè)。4)為了讓W(xué)ebView能夠響應(yīng)超鏈接功能,調(diào)用setWebViewClient()方法,設(shè)置WebView視圖。3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】5)用WebView點(diǎn)鏈接看很多頁(yè)以后為了讓W(xué)ebView支持回退功能,需要覆蓋Activity類(lèi)的onKeyDown
14、()方法,如果不做任何處理,點(diǎn)擊系統(tǒng)回退鍵,整個(gè)瀏覽器會(huì)調(diào)用finish()而結(jié)束自身,而不是回退到上一頁(yè)面。6)需要在AndroidManifest.xml文件中添加權(quán)限,否則出現(xiàn)Web page not available錯(cuò)誤。3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】(4)常用屬性、狀態(tài)描述1)WebSettings常用方法:setAllowFileAccess 啟用或禁止WebView訪問(wèn)文件數(shù)據(jù)setBlockNetworkImage 是否顯示網(wǎng)絡(luò)圖像setBuiltInZoomControls 設(shè)置是否支持縮放setCacheMode 設(shè)置緩沖的模式setDefau
15、ltFontSize 設(shè)置默認(rèn)的字體大小3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】setDefaultTextEncodingName 設(shè)置在解碼時(shí)使用的默認(rèn)編碼setFixedFontFamily 設(shè)置固定使用的字體setJavaSciptEnabled 設(shè)置是否支持JavascriptsetLayoutAlgorithm 設(shè)置布局方式setLightTouchEnabled 設(shè)置用鼠標(biāo)激活被選項(xiàng) setSupportZoom 設(shè)置是否支持變焦3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】2)WebViewClient常用方法:doUpdate VisitedHi
16、story 更新歷史記錄onFormResubmission 應(yīng)用程序重新請(qǐng)求網(wǎng)頁(yè)數(shù)據(jù)onLoadResource 加載指定地址提供的資源onPageFinished 網(wǎng)頁(yè)加載完畢onPageStarted 網(wǎng)頁(yè)開(kāi)始加載onReceivedError 報(bào)告錯(cuò)誤信息onScaleChanged WebView發(fā)生改變shouldOverrideUrlLoading 控制新的連接在當(dāng)前WebView中打開(kāi)3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】3)WebChromeClient常用方法:onCloseWindow 關(guān)閉WebViewonCreateWindow 創(chuàng)建WebView
17、onJsAlert 處理Javascript中的Alert對(duì)話框onJsConfirm處理Javascript中的Confirm對(duì)話框onJsPrompt處理Javascript中的Prompt對(duì)話框onProgressChanged 加載進(jìn)度條改變onReceivedlcon 網(wǎng)頁(yè)圖標(biāo)更改onReceivedTitle 網(wǎng)頁(yè)Title更改onRequestFocus WebView顯示焦點(diǎn)3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】(5)Android webView開(kāi)發(fā)過(guò)程中相關(guān)知識(shí)1)AndroidManifest.xml中必須使用許可android.permission.
18、INTERNET,否則會(huì)出Web page not available錯(cuò)誤。 2)如果訪問(wèn)的頁(yè)面中有Javascript,則webview必須設(shè)置支持Javascript。 webview.getSettings().setJavaScriptEnabled(true); 3)如果頁(yè)面中鏈接,如果希望點(diǎn)擊鏈接繼續(xù)在當(dāng)前browser中響應(yīng),而不是新開(kāi)Android的系統(tǒng)browser中響應(yīng)該鏈接,必須覆蓋 webview的WebViewClient對(duì)象。 4)下面的代碼通過(guò)loadUrl方法設(shè)置當(dāng)前webView需要訪問(wèn)的網(wǎng)址:mWebView=(WebView) findViewById(R.id.WebView01);mWebView.loadUrl(“ ”);3. WebView組件的使用遼寧輕工職業(yè)學(xué)院【知識(shí)準(zhǔn)備】5)在android中專門(mén)通過(guò)WebSettings來(lái)設(shè)置WebView的一些屬性.狀態(tài)等。在創(chuàng)建WebView時(shí),系統(tǒng)有一個(gè)默認(rèn)的設(shè)置,我們可以通過(guò)WebView.getSettings來(lái)得到這個(gè)設(shè)置:6)使用WebViewClient來(lái)完成在應(yīng)用程序中自定義網(wǎng)頁(yè)瀏覽程序:WebViewClient是輔助WebView處理各種通知.請(qǐng)求等事件的類(lèi)。通過(guò)WebView的setWebViewCl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自行車(chē)租借合同范例
- 商鋪轉(zhuǎn)租簡(jiǎn)易合同范例
- 框架購(gòu)銷(xiāo)合同范例
- 貨款訂單合同范例
- 關(guān)店分家合同范例
- KTL供貨協(xié)議合同范例
- 房屋速銷(xiāo)合同范例
- 電子行業(yè)轉(zhuǎn)讓合同范例
- 生意托管服務(wù)合同范例
- 車(chē)輛保險(xiǎn)公估合同范例
- 物資使用情況反饋表
- 老視的機(jī)制及治療
- IATF16949事態(tài)升級(jí)處理程序
- 鉆咀培訓(xùn)資料
- 《設(shè)計(jì)調(diào)查問(wèn)卷》教學(xué)設(shè)計(jì)范文
- 常用抗凝藥物的應(yīng)用及護(hù)理PPT課件
- 枇杷栽培技術(shù)26661
- 離退休干部管理崗試題
- 青島海事局平臺(tái)建設(shè)方案
- xx縣人民醫(yī)院護(hù)理人員面試評(píng)分表
- 施工現(xiàn)場(chǎng)臨水臨電.PPT
評(píng)論
0/150
提交評(píng)論