Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 155 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
155
Dung lượng
3,5 MB
Nội dung
Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 1 MC LC LI NÓI U 5 Các tài liu liên quan 6 I.Events 7 1.1.Hiu thêm v events 7 1.2.Cách s dng EVENTS LISTENER 8 1.3.Hiu thêm v các dng s kin EVENT TYPES 9 1.3.1.Backbutton 9 1.3.2.Deviceready 10 1.3.3.Menubutton 11 1.3.4.Pause 12 1.3.5.Resume 13 1.3.6.Searchbutton 14 1.3.7.Online 15 1.3.8.Offline 16 1.3.9.Mt ví d đn gin v s phn hi li các s kin events 17 1.3.10.Mt ví d đn gin v vic phn hi li các s kin Button Events 18 II.Cách làm vic vi thit b, mng network, và các thông báo notifications 20 2.1.Cách ly thông tin t thit b 20 2.1.2.Cách ly v tên ca thit b Device Name 20 2.1.3.Cách ly v thông tin phiên bn phonegap 21 2.1.4.Cách ly v nn tng thit b Device Platform 21 2.1.5.Cách ly v ID quc t ca thit b UUID 21 2.1.6.Cách ly v thông tin phiên bn h điu hành 22 2.1.7.Ví d v cách ly thông tin ca thit b 22 2.2.Cách kim tra 1 mng network 23 Cách xác đnh dng kt ni 24 2.3.Cách s dng các thông báo NOTIFICATIONS 26 2.3.1.Cách s dng Alerts 26 2.3.2.Cách s dng hp thoi tng tác Confirmation Dialogs 27 2.3.3.Cách s dng Beeps 28 2.3.4.Cách s dng ch đ rung Vibrations 29 2.3.5.Ví d v cách s dng tt c 4 loi thông báo Notifications 29 III.Gia tc k Accelerometer 32 Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 2 3.1.Th nào là gia tc k Accelerometer ? 32 3.2.Cách s dng gia tc k Accelerometer 32 3.3.Các ng dng dùng gia tc k Accelerometer 33 3.4.Cách s dng đi tng gia tc k ACCELERATION OBJECT 36 3.5.Cách s dng các phng thc ACCELEROMETER METHODS 37 3.5.1.Phng thc getCurrentAcceleration 37 3.5.2.Phng thc watchAcceleration 38 3.5.3.Phng thc clearWatch 39 3.6.La chn cu hình ACCELEROMETER OPTION 40 3.7.Ví d v cách s dng gia tc k ACCELEROMETER 40 Cách thc ví d hot đng 41 IV.Ví trí đa lý Geolocation 42 4.1.Th nào là v trí đa lý Geolocation ? 42 4.2.Cách s dng Geolocation 42 4.3.Các mu ng dng v Geolocation 42 4.4.Các đi tng POSITION, POSITIONERROR, và COORDINATES 45 4.4.1.i tng Position Object 45 4.4.2.i tng PositionError 46 4.4.3.i tng Coordinates Object 46 4.5.Ví d minh ha v geolocation 46 Cách ví d hot đng 47 4.6.Cách ci thin giao din và tri nghim ca ngi dùng 48 V.Media 52 5.1.Các Media Files là gì ? 52 5.2.Cách s dng các Media Files 52 5.3.Các ng dng mu s dng media API 52 5.4.i tng MEDIA OBJECT 55 5.5.Cách s dng các phng thc methods 56 5.5.1.phng thc media.getCurrentPosition 56 5.5.2.Phng thc media.getDuration 57 5.5.3.Phng thc media.pause 58 5.5.4.Phng thc media.play 59 5.5.5.Phng thc media.release 61 5.5.6.Phng thc media.seekTo 61 5.5.7.Phng thc media.startRecord 62 5.5.8.Phng thc media.stop 63 Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 3 5.5.9.Phng thc media.stopRecord 64 5.5.10.Kim soát li MediaError 65 5.5.11.Ví d v vic s dng media api 66 VI.Lu tr Storage 73 6.1.im khác bit gia Session Storage và Local Storage ? 75 6.2.Cách s dng local storage 76 6.3.Cách s dng đi tng DATABASE OBJECT 77 6.3.1.Cách to và Cách m 1 database 77 6.3.2.Cách chy 1 sql Query 78 6.3.3.Cách phân tích và tin x lý các câu lnh SQL (phòng chng SQL injection) 81 6.3.4.Các giao dch Transactions 82 6.4.Cách xem 1 tp kt qu 84 6.5.iu chnh li 86 6.6.Ví d v cách xây dng 1 database đn gin : 89 VII.Files 91 7.1.H thng FILESYSTEMS 91 7.2.Tìm hiu v các th mc dn DIRECTORIES và các files 92 7.2.1.Cách s dng đi tng DirectoryEntry Object 92 7.2.2.getMetadata 93 7.2.3.setMetadata 94 7.2.4.moveTo 95 7.2.5.copyTo 96 7.2.6.toURI 97 7.2.7.remove 97 7.2.8.getParent 98 7.2.9.createReader 98 7.2.10.getDirectory 99 7.2.11.getFile 99 7.2.12.removeRecursively 100 7.3.metadata 101 7.4.FileError 102 7.5.Flags 102 7.6.LocalFileSystem 103 7.7.DirectoryReader 104 7.8.Cách s dng đi tng FileEntry Object 105 7.8.1.getMetadata 106 Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 4 7.8.2.moveTo 107 7.8.3.copyTo 108 7.8.4.toURI 109 7.8.5.remove 109 7.8.6.getParent 109 7.8.7.createWriter 110 7.8.8.file 111 7.9.Cách đc các files - FileReader 111 7.9.1.readAsDataURL 112 7.9.2.abort 113 7.9.3.readAsText 114 7.10.Cách đc các files – FileWriter 116 7.11.Cách truyn dn files – FileTransfer 120 7.11.1.upload 120 7.11.2.download 124 7.11.3.abort 125 7.11.4.onprogress 125 7.12.FileTransferError 126 VIII.Camera 127 8.1.Cách truy cp 1 nh Picture 127 8.2.Cách thit lp các cu hình trong Camera Options 139 8.2.1.Quality 140 8.2.2.destinationType 141 8.2.3.sourceType 143 8.2.4.allowEdit 145 8.2.5.encodingType 146 8.2.6.targetHeight và targetWidth 146 8.2.7.mediaType 146 8.2.8.saveToPhotoAlbum 147 8.3.Làm vic vi các vn đ xy ra vi camera 147 IX.Splashscreen 151 10.1.Cách phn quyn Permissions 151 Android 151 iOS 151 10.2.Cách thit lp 151 10.3.show 152 Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 5 10.4.hide 153 LI NÓI U 1 đim cá nhân mình rt thích Phonegap, đó chính là tính đn gin và hu nh không có tính ràng buc. Phonegap đc gi là framework tuy nhiên nó không ging nh 1 vài framework PHP mà mình đã tng hc, vi nhng framework PHP này, nó đnh ngha li hoàn toàn cách bn vit mã code, và nó đòi hi bn phi hiu rõ sâu rng v các thành phn h thng bên trong, thì bn mi có th lp trình thông tho đc. Vi Phonegap, nó không kìm kp bn vào trong 1 h thng có 1 quy chun riêng ri rm nào c, bn có th t do thoi mái lp trình theo cách mà bn mun (tuy nhiên cái gì cng có 2 mt ca nó), bn ch cn nm bt 1 công ngh duy nht - công ngh nn Web(bao gm HTML5, Javascript, CSS), b qua gánh nng cn phi nm bt và hiu rõ v các công ngh bên trong mi nn tng (Android, iOS, Blackberry, Windowphone, ầ) mà bn vn có th to ra đc các ng dng “vit mt ln, biên dch qua cloud và chy khp ni – tng thích vi hu ht các nn tng h điu hành di đng hin ti”. Tài liu đc vit ging nh 1 bn ghi chép, ghi li nhng th mà mình đã đc đc t các ebook ting anh, do vy b cc sp xp ca nó có th cha chính xác, cách trình bày không theo chun 1 ebook nào c và nhiu ch vit cha rõ ngha và không mch lc do hn ch v ngoi ng ca bn thân mình. Tài liu mang đm tính cht cá nhân do vy bn s bt gp trong tài liu này nhiu đon kí t in đm, in màu, c ch ln bt thng và đc tô màu khác nhau - đó là các đon có liên quan đn nhau hay là nhng ghi chú quan trng mà bn cn phi đc k. Ni dung trong tài liu này đc da trên các cun ebook: “Beginning Phonegap - Thomas Myer”, “PhoneGap Essentials - John M. Wargo”, “Apache Cordova Documentation 2.2.0 – Phonegap team”, và 1 s gii thích, đnh ngha v kin trúc ca HTML5 t W3C.org. Tài liu này không đ cp ti đy đ các hàm APIs đc Phonegap h tr. C th, các phn sau b lc b: Capture, Compass, Contacts, Globalization, Guides (do mình không có thi gian đ vit nt, và mình cng không s dng đn các phn b lc b này) Nu có thc mc hay góp ý gì, các bn có th đng ký ngay 1 nick vào din đàn www.phonegap.vn/forum đ đt câu hi trc tip, các MOD và ADMIN s tr li câu hi ca bn trong thi gian sm nht. Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 6 Các tài liu liên quan “Lp trình hng đi tng trong Javascript và các kiu mu thit k”: http://www.slideshare.net/myloveforyounqt/lap-trinh-huong-doi-tuong-trong- javascript-va-cac-kieu-mau-thiet-ke “Cách ti u hóa môi trng lp trình ng dng cho Android”: http://www.slideshare.net/myloveforyounqt/cch-ti-u-ha-mi-trng-lp-trnh-ng-dng- cho-android-tng-tc-my-o-android Hoc đn gin truy cp vào th mc chia s sau: http://sdrv.ms/VoAXBi (rt có th trong 1 thi gian na, mình s vit 1 ebook liên quan đn Jquery Mobile, nu có thì các bn s thy nó xut hin trong th mc chia s này) Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 7 I.Events 1 s kin events trong phonegap tng đi ging s kin trong javascript.1 hành đng (thao tác) đc thc hin trên thit b - ví d nh document object model (DOM) đã đc ti xong và do đó thit b trng thái sn sàng “ready” - và hin ti phonegap có th thc hin 1 vài th đ tr li(đáp ng) li s kin này 1.1.Hiu thêm v events đn gin hóa, ta hiu 1 event là bt c hành đng nào mà có th đc xác đnh (nhn bit) bi phonegap.trong lp trình javascript truyn thng, bt c phn t nào trên 1 trang page cng có th có các s kin event nào đó, và nó có th đc kích hot bi 1 vài mã javascript.ví d nh 1 s kin onrollover trên 1 link có th gây ra xut hin 1 bng pop-up, hay s kin onclick có th gây ra 1 bng hp thoi xem trc Tóm li, s kin events có th là click chut, 1 image loading, rolling over trên 1 link nào đó hay nhng đi tng DOM khác, vic la chn 1 trng input field trong 1 form, submitting 1 form, hay s kin gõ 1 phím bt kì trên bàn phím.v đa s thì tt c các dng s kin events trên cng có th đc s dng khi ta phát trin các ng dng s dng phonegap.tuy nhiên có nhng s kin ch đc đnh ngha bên trong phonegap nh sau : deviceready pause resume online offline backbutton batterycritical batterylow batterystatus menubutton searchbutton startcallbutton Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 8 endcallbutton volumedownbutton volumeupbutton trong tt c các s kin events trên thì s kin deviceready là quan trng nht mà ta phi xem xét ti.không có nó thì ng dng ca ta s không bit khi nào phonegap đã đc load hoàn toàn.khi nó đc kích hot, ta có th gi 1 cách an toàn bt c các hàm PhoneGap function nào và do đó có th ln lt truy cp an toàn vào các API bn đa khi s kin deviceready event đc kích hot, thì ta bit đc 2 điu : DOM đã đc load, và do vy đã có PhoneGap API 1.2.Cách s dng EVENTS LISTENER đ s dng bt c s kin event nào, thì ta s cn phi s dng 1 event listener.nh ví d sau : dùng đ xác đnh s kin deviceready.ta phi làm nh sau : <!DOCTYPE html> <html> <head> <title>PhoneGap Device Ready Example</title> <script type=”text/javascript” charset=”utf-8” src=”phonegap.js”></script> <script type=”text/javascript” charset=”utf-8”> document.addEventListener(“deviceready”, onDeviceReady, false); function onDeviceReady() { // call the phonegap api document.addEventListener(“pause”, onPause, false); document.addEventListener(“resume”, onResume, false); } function onPause(){ } function onResume(){ } </script> </head> <body> </body> Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 9 </html> Ví d trên nhc nh ta rng deviceready có th là 1 s kin nhng nó li không phi là s kin chun tc trong trình duyt, nó ch hot đng và nhn bit bi trong phonegap.nu ta th chy s kin này trong 1 trình duyt thông thng thì nó không bao gi đc kích hot 1.3.Hiu thêm v các dng s kin EVENT TYPES 1.3.1.Backbutton S kin backbutton đc kích hot khi ngi dùng n vào nút Back trên thit b Android xác đnh s kin event này, thì ta cn đng ký 1 event listener nh sau : document.addEventListener(“backbutton”, onBackButton, false); function onBackButton(){ //handle the back button } Cng ging nh các s kin event khác thì ta không nên đng ký ging nh th này cho ti khi ta đã xác đnh đc s kin deviceready event: <!DOCTYPE html> <html> <head> <title>PhoneGap backbutton Example</title> <script type=”text/javascript” charset=”utf-8” src=”phonegap.js”></script> <script type=”text/javascript” charset=”utf-8”> document.addEventListener(“deviceready”, onDeviceReady, false); function onDeviceReady() { // Register the event listener document.addEventListener(“backbutton”, onBackButton, false); } // Handle the back button // function onBackButton() { Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www.phonegap.vn/forum 10 } </script> </head> <body> </body> </html> 1.3.2.Deviceready Nh đã nhc đn t trc, s kin deviceready là s kin quan trng nht mà ta có th xác đnh.theo đó ta cn phi xác đnh s kin này đu tiên trc khi ta làm bt c nhng gì khác bi vì khi nó đc kích hot thì đng ngha vi vic ta chc chn gi đc các PhoneGap API document.addEventListener(“deviceready”, onDeviceReady, false); function onDeviceReady(){ //ready! } dành cho nhng ngi phát trin trên BlackBerry OS 4.6, thì RIM Browserfield không h tr hàm s kin event này, nên ta cn s dng PhoneGap.available đ thay th nh sau : function onLoad() { var intervalID = window.setInterval( function() { if (PhoneGap.available) { window.clearInterval(intervalID); onDeviceReady(); } }, 500 ); } function onDeviceReady() { // use the phonegap api! } [...]... Nexus One tr v bi n tho Passion n ph m) voles email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 20 im ih c BlackBerry Bold 8900 tr v iPhone tr v thu c thi t l p trong iTunes c h tr device.name 2.1.3.C 8900 ) tb yv n phonegap l yv t b , ta s d ng thu device .phonegap var myDevicePhoneGap = device .phonegap; thu device .phonegap 2.1.4.C c h tr tb y v n n t ng thi t b Device Platform yv ah t b , ta s... device.name a thi t b device .phonegap device.platform device.uuid ng device : n c a phonegap lo i c a thi t b ) s id c a thi t b device.Version nh y quan tr ng ph ng window object, do v c.hi 2 bi u tham chi u t thi t b device : //both of these reference the same device var myPhoneName = window.device.name; var myPhoneName = device.name; trong ph h cl yv a thi t b device n phonegap ID qu c t nh thi t... PhoneGap offline Example false); function onDeviceReady() { // Register the event listener } // Handle the offline event // function isOffline() { } email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 16 im ih c 1.3.9.M t nv s Ta t o ra ng d ph n h i l n, ph n h i l ki n events ki n : PhoneGap Event... email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 17 im ih c ki n deviceready event listener ki event API cr i c a phonegap khi ki n deviceready event onDeviceReady() event listener m function event g i1 ki n pause 2 cho s ki n resume event 1.3.10.M t n v vi c ph n h i l ki n Button Events PhoneGap Button Example document.addEventListener... onLoad() { document.addEventListener deviceready onDeviceReady, false); } // okay, PhoneGap is ready // function onDeviceReady() { email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 22 im ih c } ng iv theo ta vi m onLoad() function addEventListener event handler b c bi t, ta mu ch n phonegap. js.ti p d ng ki n deviceready event, c onDeviceReady() function onDeviceReady()... ng i v c iphone email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 33 im ih c tb nghi ng hay chuy trong h i u khi n 1 tr i b 6-3, trong i xuy n qua c ta s d ng ng ng i v t t t nhi n, c v s c c ng d ng s d ng gia t c k accelerometer email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 34 im ih c email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 35 im ih c 3.4.C ch s d i ng gia t c k... function onPause(){ //handle the pause event } n gi PhoneGap pause Example document.addEve function onDeviceReady() { // Register the event listener } // Handle the pause // function onPause() { } email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 12 im ih c 1.3.5.Resume S ki n resume t khi 1 ng d t tr l tr m d ng... // Handle the menubutton // email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 18 im ih c function onMenuButton() { } // Handle the searchbutton // function onSearchButton() { } ch c ch n r ng ng d ng event listeners, t a thi t b Menu, Back buttons email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 19 im ih c II c v i thi t b , m 2.1 thi t b cg runtime... onResume(){ //handle the resume event } c s ki n deviceready PhoneGap resume Example function onDeviceReady() { // Register the event listener } // Handle the resume // function onResume() { } email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 13 im ih c 1.3.6.Searchbutton S ki n searchbutton Search nh s ki t b android... search button } c s ki n deviceready PhoneGap searchbutton Example ffunction onDeviceReady() { // Register the event listener ton, false); } // Handle the search button // function onSearchButton() { } email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 14 im ih c 1.3.7.Online S ki n online t khi 1 ng d ck tn . 10.3.show 152 Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 5 10.4.hide 153 LI NÓI U 1 đim cá nhân mình rt thích Phonegap, đó. này đc da trên các cun ebook: “Beginning Phonegap - Thomas Myer”, PhoneGap Essentials - John M. Wargo”, “Apache Cordova Documentation 2.2.0 – Phonegap team”, và 1 s gii thích, đnh ngha. th mc chia s này) Phonegap cho ngi mi hc Ngô Quang Trung – email: ngotrung.poli.t@gmail.com / www .phonegap. vn/forum 7 I.Events 1 s kin events trong phonegap tng đi ging