close

十四,存取 Camera,用 navigator.camera.getPictures ,會跳出系統的相簿程式或拍照程式,完成以後,會把選定的照片傳到 callback 裡。呼叫相簿或是相機,是用 第3個參數裡的 sourceType 決定,Camera.PictureSourceType.PHOTOLIBRARY 是相簿,而 Camera.PictureSourceType.CAMERA 則是相機。

十五,存送資料到遠端伺服器。PhoneGap 有內建檔案相關的函式庫,所以直接使用就可以。這邊示範怎麼使用 FileUploadOption 與 FileTransfer 兩個類別來上傳檔案到網站。

十六,錄製聲音與影像。用 navigator.device.capture.captureAudio 與 navigator.device.capture.captureVideo 即可,要儲存的話,就是搭配前一個 receipt 提到的檔案相關函式庫。

十七,Alert/Confirmation/Vibrate。你可以使用 javascript 本身就有的 alert/confirm,但作者這邊則是改寫為使用 PhoneGap 提供的 navigator.notification 來做,這樣就會出現 Android style 的 alert/confirmation。Vibrate 一樣是包在 notification 裡,除此之外,還有 beep 可以用。

十八,儲存資料在手機上。一樣也是使用檔案相關的函式庫來做,但這次不是上傳,而是用 FileWriter。使用上比上傳來的麻煩,得先用 window.requestFileSystem 去提出存取檔案系統的要求,然後用一堆 callback 下去才能取得可用的 fileWriter,作者是把取得的 fileWriter 放到公用變數裡,給其他函式使用。

十九,讀取手機上的資料,跟上面相似,但改為 FileReader 了。

二十,以 Plugin 擴充 PhoneGap 功能。PhoneGap 雖然包山包海,但難免力有未逮,在遇到這種情況時,可以自行撰寫 Plugin 來擴充。這邊是建立一個 Android library project ,也就是 plugin 來剖析 rss。第一個要點是要繼承自 com.phonegap.api.Plugin ,第二個是複寫 executePlugin 函式,並傳回一個 com.phonegap.api.PluginResult 物件。編譯完成以後,要在專案裡使用,就是在 plugins.xml 裡添加 plugin tag,並提供一個 js 檔案,裡面寫 wrapper 函式以 PhoneGap.exec 去呼叫 Plugin 即可。PhoneGap 的 github 上有很多人分享了很棒的 Plugin 可以用,在自建之前,最好先去找找看有沒有合用的。像是 Android 基本的 startActivity (PhoneGap 沒提供),就有 WebIntent 可以用,而不用再自己寫。

PhoneGap 在所有地方都使用了 callback 的概念,寫的時候得要特別注意,任務的完成或失敗不會是在下一行指令,而是在指定的 callback 函式裡。

整體來說,參考前面幾章,就可以建立起一個簡單專案的雛形,接著就可以用 js/html 撰寫頁面了。每一章的範例都很清楚,相當簡單易懂的一本書。

更多有關 20 Recipes for Programming PhoneGap 的事情

arrow
arrow

    elleryq 發表在 痞客邦 留言(0) 人氣()