在Android平臺(tái)中實(shí)現(xiàn)Phonegap文件上傳
在Android平臺(tái)中實(shí)現(xiàn)Phonegap文件上傳是本文要介紹的內(nèi)容,主要是來(lái)了解并學(xué)習(xí)Phonegap的應(yīng)用,那么本文通過一個(gè)簡(jiǎn)單的實(shí)例來(lái)講解Phonegap的應(yīng)用,具體內(nèi)容的實(shí)現(xiàn)來(lái)看本文詳解。
沿用官網(wǎng)提供的完整代碼:
- //WaitforPhoneGaptoload
- //
- document.addEventListener("deviceready",onDeviceReady,false);
- //PhoneGapisready
- //
- functiononDeviceReady(){
- //Retrieveimagefilelocationfromspecifiedsource
- navigator.camera.getPicture(uploadPhoto,
- function(message){alert('getpicturefailed');},
- {quality:50,
- destinationType:navigator.camera.DestinationType.FILE_URI,
- sourceType:navigator.camera.PictureSourceType.PHOTOLIBRARY}
- );
- }
- functionuploadPhoto(imageURI){
- varoptions=newFileUploadOptions();
- options.fileKey="file";
- options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
- options.mimeType="image/jpeg";
- varparams=newObject();
- params.value1="test";
- params.value2="param";
- options.params=params;
- varft=newFileTransfer();
- ft.upload(imageURI,"http://some.server.com/upload.php",win,fail,options);
- }
- functionwin(r){
- console.log("Code="+r.responseCode);
- console.log("Response="+r.response);
- console.log("Sent="+r.bytesSent);
- }
- functionfail(error){
- alert("Anerrorhasoccurred:Code="=error.code);
- }
Example
UploadFile
其中已經(jīng)過修改,因?yàn)樵陔娔X虛擬機(jī)中sourceType:navigator.camera.PictureSourceType.PHOTOLIBRARY會(huì)出錯(cuò),還沒在真機(jī)中測(cè)試過。
主要問題還是參數(shù)imageURI,andriod中imageURI是content://……形式得,不過phonegap已經(jīng)在1.0.0rc2版本中fix了這個(gè)問題。
得到的fileEntry仍然無(wú)法使用的,ft.upload()中參數(shù)一imageURI,在android平臺(tái)中的格式是fileEntry.fullPath.
本來(lái)想說根目錄fileEntry.toURI()應(yīng)該也行,但是測(cè)試證明,只有fileEntry.fullPath才能獲得數(shù)據(jù)并成功上傳。
看來(lái)phonegap還應(yīng)該再多改進(jìn)~
不過整體還是滿意的~~參看了一些文檔,似乎在iphone下會(huì)更麻煩一點(diǎn)~
所以說phonegap也不見得是寫一次就可以通用的~~最簡(jiǎn)單的可能一次代碼就可以通用~
但是涉及到一些進(jìn)階一點(diǎn)的也是需要再另外做功課的。
大家有空多逛逛phonegap.cn一起討論下~
小結(jié):在Android平臺(tái)中實(shí)現(xiàn)Phonegap文件上傳內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!