Tải bản đầy đủ (.doc) (125 trang)

tìm hiểu và xây dựng ứng dụng đa nền tảng dựa trên framework phonegap

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.49 MB, 125 trang )

TRƯỜNG ĐẠI HỌC ĐÀ LẠT
KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN THANH HAI – 0912687
TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG
ĐA NỀN TẢNG DỰA TRÊN FRAMEWORK PHONEGAP
KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CÔNG NGHỆ THÔNG TIN
GIÁO VIÊN HƯỚNG DẪN
LÊ NGỌC LUYỆN
Báo cáo khóa luận tốt nghiệp
Đà Lạt, Năm 2013
Trang2
Báo cáo khóa luận tốt nghiệp
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN















Đà Lạt, ngày….tháng…. năm 2013
Giáo viên hướng dẫn
[Ký và ghi rõ họ tên]


Trang3
Báo cáo khóa luận tốt nghiệp
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN





















Khóa luận đáp ứng yêu cầu của Khóa luận kỹ sư Công nghệ thông tin.
Đà Lạt, ngày….tháng…. năm 2013
Giáo viên phản biện
[Ký và ghi rõ họ tên]
Trang4
Báo cáo khóa luận tốt nghiệp

LỜI CAM KẾT
Tôi xin cam đoan rằng nội dung bài báo cáo nghiên cứu về đề tài “Tìm hiểu
và xây dựng ứng dụng đa nền tảng dựa trên framework PhoneGap” là do chính
chúng tôi Nguyễn Thanh Hai viết ra với sự hướng dẫn của giáo viên hướng dẫnkỹ
sư Lê Ngọc Luyện. Nội dung của bài nghiên cứu và sản phẩm là do chính chúng tôi
viết ra, trong hệ thống chúng tôi có sử dụng một số thư viện mã nguồn mở và riêng
một số công cụ của Microsoft được sử dụng với bản quyền MSDN Việt Nam cung
cấp.
Chúng tôi hoàn toàn chịu trách nhiệm trước nhà trường về bài báo cáo và sản
phẩm của mình.
Đà Lạt, tháng 12 năm 2013
Sinh viên thực hiện
Nguyễn Thanh Hai
Trang5
Báo cáo khóa luận tốt nghiệp
LỜI CẢM ƠN
Em xin chân thành cảm ơn ban giám hiệu, quý thầy cô trường Đại học Đà
Lạt, đặc biệt là các thầy cô trong khoa Công nghệ thông tin đã tận tình giảng dạy và
truyền đạt trang bị cho em những kiến thức cần thiết và bổ ích trong suốt những
năm tháng học tập tại trường.
Em cũng xin chân thành cảm ơn thầy Lê Ngọc Luyện đã tận tình quan tâm
hướng dẫn, giúp đỡ chúng em trong suốt thời gian làm luận văn vừa qua.
Con xin chân thành cảm ơn sâu sắc và sự kính trọng đến cha mẹ, gia đình đã
nuôi dạy chúng con trưởng thành như ngày hôm nay.
Tôi xin chân thành cảm ơn sự giúp đỡ, động viên, khích lệ, nhận xét, đóng
góp ý kiến của anh chị, bạn bè trong suốt thời gian thực hiện khóa luận này.
Trong quá trình làm em chắc chắn sẽ có những thiếu sót, sai lầm mong thầy
cô góp ý để em có thể hoàn thiện mình hơn.
Em xin chân thành cảm ơn!
Đà Lạt, tháng 12 năm 2013

Sinh viên thực hiện
Nguyễn Thanh Hai
Trang6
Báo cáo khóa luận tốt nghiệp
TRƯỜNG ĐẠI HỌC ĐÀ LẠT
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ CƯƠNG
NGHIÊN CỨU KHÓA LUẬN TỐT NGHIỆP

Đề tài: TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG ĐA NỀN TẢNG DỰA
TRÊN FRAMEWORK PHONEGAP
Chuyên ngành: Kỹ thuật phần mềm
Sinh viên thực hiện: Nguyễn Thanh Hai
MSSV: 0912687
Khóa: 2009– 2014
Giáo viên hướng dẫn:KS. Lê Ngọc Luyện
1. Mục tiêu đề tài
Ngày nay với sự ra đời và phát triển vũ bảo của hàng loạt nền tảng di
động, việc phát triển ứng dụng đa nền tảng được xem là cơ hội và ưu thế của
những công ty về phần mềm. Với Framework PhoneGap người lập trình có thể
xây dựng nhanh chóng các ứng dụng có thể chạy trên được nhiều nền tảng hệ
điều hành di động khác nhau như Android, iOS, Window Phone, BlackBerry…
Từ những lợi ích như vậy đề tài tập trung tìm hiểu kiến trúc của nền tảng
PhoneGap và tiến hành xây dựng ứng dụng chia sẻ học ngoại ngữ nhằm nâng
cao khả năng học hỏi, trao đổi theo nhóm, nâng cao hiểu quả học tập.
2. Nội dung đề tài
 Tìm hiểu về framework PhoneGap
o Cài đặt cấu hình
o Kiến trúc ứng dụng PhoneGap
o Phương thức xây dựng phát triển ứng dụng vói PhoneGap

Trang7
Báo cáo khóa luận tốt nghiệp
 Tìm hiểu về kiến trúc dịch vụ web
o Tổng quan về truyền thông giao tiếp trên nền dịch vụ web
o Mô hình kiến trúc trong dịch vụ web và ứng dụng đa nền tảng
 Ứng dụng chia sẻ học ngoại ngữ
o Phân tích chức năng và đối tượng sử dụng ứng dụng
 Đối tượng sử dụng ứng dụng
 Chức năng của ứng dụng
 Phân tích đưa ra hệ quản lý cơ sơ dữ liệu
o Xây dựng ứng dụng
 Xây dựng giao diện ứng dụng
 Xây dựng hệ thống từ vựng tiếng anh kèm hình ảnh
 Xây dựng chức năng tạo nhóm
 Xây dựng chức năng chia sẻ, trao đổi, bình luận nội
dung học theo từng nhóm
o Triển khai ứng dụng
 Cài đặt triển khai thử nghiệm ứng dụng trên các nền
tảng Android, IOS, Window Phone.
3. Phần mềm và công cụ sử dụng
 PhoneGap Framework 2.8.1
 HTML, CSS, Java Script
 Microsoft Visual Studio 2012
 Eclipse Classic 4.2.2
 Xcode
 Windows Phone SDK
 Android SDK
 iOS SDK
 Adobe Photoshop CS6
4. Dự kiến kết quả

 Kiến thức về PhoneGap framework
 Xây dựng thành công ứng dụng chia sẽ học tiếng anh và chạy tốt trên
các nền tảng Window phone 8, Android, iOS
5. Tài liệu tham khảo chính
[1] Adrian Kosmaczeuski, Mobile JavaScript Application Development,
O'Reilly, 2012
[2] Dino Esposito, Architecting Mobile Solutions for the Enterprise,
O'Reilly, 2012
• [3] Jon Flanders, Restful .NET, O‘Reilly, 2008
• [4] Atul Gupta, Sudhanshu Hate & Andrew Siemer, Asp.NET 4 Social
Networking, 2011
Trang8
Báo cáo khóa luận tốt nghiệp
Đà Lạt, ngày……tháng……năm 2013
Giáo viên hướng dẫn SV Thực hiện
(Ký tên) (Ký tên)
KS Lê Ngọc Luyện Nguyễn Thanh Hai
Trưởng khoa Tổ trưởng Bộ môn
(Ký tên) (Ký tên)
Th.S Trần Tuấn Minh Th.S Nguyễn Minh Hiệp
Trang9
Báo cáo khóa luận tốt nghiệp
MỤC LỤC
CHƯƠNG 1: Tìm hiểu về framework PhoneGap 16
1.1 Tổng quan về Phonegap 16
1.2 Tại sao sử dụng PhoneGap? 17
1.3 Kiến trúc PhoneGap 18
1.3.1 Tổng quan kiến trúc PhoneGap 18
1.3.2 Hệ thống API PhoneGap 19
1.4 Cài đặt cấu hình PhoneGap cho windows phone 8 48

1.4.1 Yêu cầu cấu hình 48
1.4.2 Cài đặt SDK + Cordova 49
1.4.3 Tạo project mới sử dụng PhoneGap trong Visual studio 2012 51
1.4.4 Tạo project mẫu HelloWord 53
1.4.5 Chạy chương trình trên nền Windows phone Emulator 53
CHƯƠNG 2: Tìm hiểu về kiến trúc dịch vụ web 56
2.1 Tổng quan về truyền thông giao tiếp trên nền dịch vụ web 56
2.2 Giao thức truyền thông trong dịch vụ web 57
2.2.1 SOAP 57
2.2.2 REST 58
2.3 Ứng dụng của mô hình dịch vụ web 59
2.4 Mô hình kiến trúc trong dịch vụ web và ứng dụng đa nền tảng 59
CHƯƠNG 3: Phân tích ứng dụng chia sẻ học ngoại ngữ 61
3.1 Mục đích của ứng dụng 61
3.2 Đối tượng sử dụng ứng dụng 61
3.3 Xác định yêu cầu hệ thống 61
3.3.1 Xác định yêu cầu chức năng 61
3.3.2 Xác định yêu cầu phi chức năng 65
3.4 Danh sách ca sử dụng của ứng dụng 66
3.5 Sơ đồ Ca sử dụng 67
3.5.1 Sơ đồ tổng quát hệ thống 67
3.5.2 Sơ đồ hệ thống quản trị 70
3.5.3 Hệ thống học tập 73
3.6 Danh sách quy định 79
Trang10
Báo cáo khóa luận tốt nghiệp
3.7 Phân tích đưa ra hệ quản lý cơ sơ dữ liệu 81
3.7.1 Sơ đồ khái niệm 81
3.7.2 Danh sách lớp và thuộc tính 82
3.7.3 Mô tả lớp 82

3.8 Sơ đồ tuần tự 83
3.8.1 Sơ đồ tuần tự của chức năng đăng nhập hệ thống 83
3.8.2 Sơ đồ tuần tự của chức năng thoát khỏi hệ thống 84
3.8.3 Sơ đồ tuần tự của chức năng thêm nhóm người dùng 84
3.8.4 Sơ đồ tuần tự của chức năng xóa nhóm người dùng 85
3.8.5 Sơ đồ tuần tự của chức năng tìm kiếm nhóm người dùng 85
3.8.6 Sơ đồ tuần tự của chức năng cập nhật nhóm người dùng 86
3.8.7 Sơ đồ tuần tự của chức năng thêm quyền sử dụng hệ thống 86
3.8.8 Sơ đồ tuần tự của chức năng cập nhật quyền sử dụng 87
3.8.9 Sơ đồ tuần tự của chức năng tìm quyền sử dụng 87
3.8.10 Sơ đồ tuần tự của chức năng xóa quyền sử dụng 88
3.8.11 Sơ đồ tuần tự của chức năng thêm thành viên 88
3.8.12 Sơ đồ tuần tự của chức năng xóa thành viên 89
3.8.13 Sơ đồ tuần tự của chức năng xem danh sách thành viên 89
3.8.14 Sơ đồ tuần tự của chức năng khóa tài khoản thành viên 90
3.8.15 Sơ đồ tuần tự của chức năng mở khóa tài khoản thành viên 90
3.8.16 Sơ đồ tuần tự của chức năng tìm kiếm thành viên 91
3.8.17 Sơ đồ tuần tự của chức năng tìm kiếm bài học 91
3.8.18 Sơ đồ tuần tự của chức năng cập nhật nội dung bài học 92
3.8.19 Sơ đồ tuần tự của chức năng thêm bài học 92
3.8.20 Sơ đồ tuần tự của chức năng xem danh sách bài học 93
3.8.21 Sơ đồ tuần tự của chức năng đăng ký tài khoản 93
3.8.22 Sơ đồ tuần tự của chức năng kích hoạt tài khoản 94
3.8.23 Sơ đồ tuần tự của chức năng lấy lại mật khẩu 94
3.8.24 Sơ đồ tuần tự của chức năng xem thông tin cá nhân 95
3.8.25 Sơ đồ tuần tự của chức năng cập nhật thông tin cá nhân 95
3.8.26 Sơ đồ tuần tự của chức năng thay đổi trạng thái 96
3.8.27 Sơ đồ tuần tự của chức năng đăng bình luận 96
Trang11
Báo cáo khóa luận tốt nghiệp

3.8.28 Sơ đồ tuần tự của chức năng cập nhật bình luận 97
3.8.29 Sơ đồ tuần tự của chức năng xóa bình luận 97
3.8.30 Sơ đồ tuần tự của chức năng đính kèm tập tin 98
3.8.31 Sơ đồ tuần tự của chức năng lưu tập tin đính kèm 98
3.8.32 Sơ đồ tuần tự của chức năng chụp ảnh chia sẽ nhanh 99
3.8.33 Sơ đồ tuần tự của chức năng tìm kiếm bạn bè 99
3.8.34 Sơ đồ tuần tự của chức năng kết bạn 100
3.8.35 Sơ đồ tuần tự của chức năng chấp nhận kết bạn 100
3.8.36 Sơ đồ tuần tự của chức năng xem danh sách yêu cầu kết bạn 101
3.8.37 Sơ đồ tuần tự của chức năng hủy kết bạn 101
3.8.38 Sơ đồ tuần tự của chức năng xem danh sách bạn bè 102
3.8.39 Sơ đồ tuần tự của chức năng tạo phòng 102
3.8.40 Sơ đồ tuần tự của chức năng cập nhật thông tin phòng 103
3.8.41 Sơ đồ tuần tự của chức năng thêm thành viên vào phòng 103
3.8.42 Sơ đồ tuần tự của chức năng tìm phòng 104
3.8.43 Sơ đồ tuần tự của chức năng gửi yêu cầu tham gia phòng 104
3.8.44 Sơ đồ tuần tự của chức năng xem danh sách thành viên của phòng 105
3.8.45 Sơ đồ tuần tự của chức năng xóa một thành viên ra khỏi phòng 105
3.8.46 Sơ đồ tuần tự của chức năng rời khỏi phòng học 105
3.8.47 Sơ đồ tuần tự của chức năng xem bình luận mới 106
3.8.48 Sơ đồ tuần tự của chức năng xem yêu cầu kết bạn mới 106
3.8.49 Sơ đồ tuần tự của chức năng xem yêu cầu tham gia phòng 107
3.8.50 Sơ đồ tuần tự của chức năng xóa thông báo 108
3.8.51 Sơ đồ tuần tự của chức năng xem danh sách bài học 108
3.8.52 Sơ đồ tuần tự của chức năng tìm kiếm bài học 109
3.8.53 Sơ đồ tuần tự của chức năng xem chi tiết bài học 109
3.8.54 Sơ đồ tuần tự của chức năng phát âm bài học 110
CHƯƠNG 4: Xây dựng ứng dụng 111
4.1 Xây dựng giao diện ứng dụng 111
4.2 Xây dựng hệ thống từ vựng tiếng anh kèm hình ảnh 119

4.3 Xây dựng nhóm chức năng cho người quản lý 120
4.4 Xây dựng nhóm chức năng cho người sử dụng 120
Trang12
Báo cáo khóa luận tốt nghiệp
CHƯƠNG 5: Triển khai ứng dụng 121
5.1 Cài đặt triển khai thử nghiệm ứng dụng trên các nền tảng Android, IOS,
Window Phone 121
Trang13
Báo cáo khóa luận tốt nghiệp
DANH MỤC BẢNG
Bảng 1 - Danh sách người dùng hệ thống 61
Bảng 2 - Danh sách người dùng hệ thống 66
Bảng 3 - Danh sách các ca sử dụng 66
Bảng 4 - Danh sách các quy định 80
Bảng 5 – Bảng mô tả lớp 83
Trang14
Báo cáo khóa luận tốt nghiệp
DANH MỤC HÌNH VẼ
Trang15
Báo cáo khóa luận tốt nghiệp
CHƯƠNG 1: TÌM HIỂU VỀ FRAMEWORK PHONEGAP
1.1 Tổng quan về Phonegap
Phonegap là 1 framework mã nguồn mở dùng cho việc xây dựng các ứng
dụng native Applications đa nền tảng bằng cách sử dụng các công nghệ web tiêu
chuẩn như HTML, CSS, Javascripts.Ban đầu là một dự án mã nguồn mở của Nitobi
giúp việc phát triển ứng dụng dễ dàng hơn đối với mọi hệ điều hành. Phát triển đầu
tiên tại một sự kiện iPhoneDevCamp ở San Francisco, PhoneGap tiếp tục giành
chiến thắng giải thưởng Choice Award tại O’Reilly Media 2009 ở hội nghị Web 2.0
tháng 4 năm 2009 ( 4 sản phẩm khác cũng dành chiến thắng bao gồm: 80 legs,
zealLog, Bantam Network, Dubmenow) mở ra hướng đi mới cho các nhà phát triển

ứng dụng web. Kể từ đó có 600.000 lượt tải về và hàng ngàn ứng dụng được phát
triển dựa trên Phonegap. Apple đã xác nhận rằng Framework này đã được phê
duyệt. Tuy được tạo ra bởi Nitobi nhưng đằng sau Phonegap là sự đóng góp của rất
nhiều tổ chức lớn như IBM, RIM và Microsoft. Phonegap cũng khẳng định rằng:
Họ có một cộng đồng phát triển hấp đẫn, hoạt động mở, minh bạch và hợp tác.
Framework PhoneGap được sử dụng bởi một số nền tảng ứng dụng di động như
Worklight , Convertigo và appMobi như là xương sống của động cơ phát triển điện
thoại di động dành cho khách hàng của họ. Adobe chính thức công bố việc mua lại
của Nitobi Software vào tháng 10 năm 2011, trùng khớp với điều đó các mã
PhoneGap đã được sử dụng cho Apache Software Foundation để bắt đầu một dự án
mới được gọi là Apache Cordova. Ở các phiên bản phonegap về trước, luôn bắt
buộc nhà lập trình khi tạo ra các ứng dụng iOS thì cần phải có 1 máy tính chạy Mac
của Apple, hay nhà lập trình muốn tạo ra các ứng dụng cho windowphone thì phải
có máy tính chạy windows. Tuy nhiên từ sau tháng 9 năm 2012, thì dịch vụ
“PhoneGap Build” đã được ra mắt và cho phép nhà lập trình tải lên mã nguồn của
họ tới 1 hệ thống biên dịch đám mây , và nhờ đó biên dịch ra các ứng dụng tương
ứng cho từng nền tảng hệ điều hành được hỗ trợ.
Trang16
Báo cáo khóa luận tốt nghiệp
Hình 1-1: Tổng quan mô hình xây dựng ứng dụng với PhoneGap
1.2 Tại sao sử dụng PhoneGap?
Với những ưu thế vượt trội như viết một lần, chạy trên nhiều nền tảng; cài
đặt như là một ứng dụng bản ngữ(native), có thể chia sẻ lên các kho ứng dụng; sử
dụng công nghệ web tiêu chuẩnHTML, CSS, Javascripts. Kiểu ứng dụng đa nền
tảng xứng đáng là một sự lựa chọn cho nhà lập trình củng như khách hàng.
Hiện nay có rất nhiều Framework hỗ trợ phát triển ứng dụng đa nền tảng như
PhoneGap, Appspresso, AppFurnace, Application Craft, iUI, NS Basic/App Studio,
WorkLight… Vậy tại sao lại sử dụng PhoneGap? Câu trả lời chính là PhoneGap có
một cộng đồng phát triển hấp dẫn, hoạt động mở, minh bạch và hợp tác trong đó có
rất nhiều tổ chức lớn như IBM, RIM và Microsoft. Công nghệ được sử dụng là công

nghệ web tiêu chuẩn như HTML, CSS, Javascripts nên không bị giới hạn bởi bất cứ
một nền tảng lập trình nào. Hỗ trợ gần như đầy đủ các nền tảng di động lớn nhất
hiện nay. Mức độ hỗ trợ của các framework có thể tham khảo đầy đủ theo liên kết
sau :
Multiple phone web-based application framework
1
1
/>Trang17
Báo cáo khóa luận tốt nghiệp
1.3 Kiến trúc PhoneGap
1.3.1 Tổng quan kiến trúc PhoneGap
Hình 1-2: Kiến trúc ứng dụng PhoneGap
Framework PhoneGap chủ yếu là một thư viện Javascript cho phép các ứng
dụng viết bằng HTML/Javascript truy cập sâu vào những tính năng của thiết
bị.Framework PhoneGap cũng là một thành phần bản ngữ, do đó các ứng dụng
được viết bằng PhoneGap cũng có thể làm việc như một ứng dụng viết bằng ngôn
ngữ chính thống.
Xem hình trên, một ứng dụng xây dựng bằng PhonGap sẽ gồm hai thành phần chính
yếu:
1. JavaScript Business Logic Part: Thành phần điểu khiển về giao diện và chức
năng của chương trình.
2. JavaScript Part: Thành phần truy cập và điều khiển thiết bị
Trang18
Báo cáo khóa luận tốt nghiệp
1.3.2 Hệ thống API PhoneGap
Hình 1-3: Hệ thống API PhoneGap phiên bản 2.8.1
Tính năng hổ trợ
Tính năng không hổ trợ
1.3.2.1 Accelerometer
Accelerometer(Gia tốc kế) cho phép cảm nhận sự thay đổi trong định hướng

của thiết bị, ghi lại chuyển động trong không gian 3 chiều XYZ
Các phương thức và đối tượng mà Accelerometer hỗ trợ:
• Phương thức getCurrentAcceleration
Lấy gia tốc kế hiện tại với các giá trị theo trục X Y và Z.
navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
Dữ liệu accelerometer data được trả về thông qua hàm onSuccess
• Phương thức watchAcceleration
Trang19
Báo cáo khóa luận tốt nghiệp
Lấy gia tốc kế theo khoảng thời gian tùy chọn
navigator.accelerometer.watchAcceleration(accelerometerSuccess,
accelerometerError,
[accelerometerOptions]);
Dữ liệu accelerometer data được trả về thông qua hàm accelerometerSuccess
Giá trị khoảng thời gian tùy chọn đó được xác định trong [accelerometerOptions]
• Phương thức clearWatch
Ngừng việc xem dữ liệu gia tốc kế được tạo bởi phương thức watchAcceleration()
Cả ba phương thức trên đều được hỗ trợ trên các nền tảng:
• Android
• BlackBerry WebWorks (OS 5.0 và cao hơn)
• iOS
• Windows Phone 7 and 8
• Bada 1.2 & 2.x
• Tizen
• Đối tượng Acceleration
Là một đối tượng chứa giá trị của Acceleration tại một thời điểm cụ thể
Acceleration có các thuộc tính như x – giá trị trục X, y – giá trị trục Y, z – giá trị
trục Z và timestamp – nhãn thời gian tính bằng mili giây.
Nền tảng hỗ trợ:
• Android

• BlackBerry WebWorks (OS 5.0 và cao hơn)
• iOS
• Windows Phone 7 and 8
• Bada 1.2 & 2.x
• webOS
• Tizen
Trang20
Báo cáo khóa luận tốt nghiệp
1.3.2.2 Camera
PhoneGap camera API cung cấp cho ứng dụng khả năng làm truy xuất đến
camera, chụp ảnh từ camera, nhận tập tin ảnh từ kho ảnh của thiết bị hay làm việc
với các hình ảnh
Các phương thức mà PhoneGap Camera API hỗ trợ:
• Phương thức getPicture
Phương thức getPicture nhận về một ảnh từ thiết bị
navigator.camera.getPicture( cameraSuccess, cameraError, [ cameraOptions ] );
Giá trị trả về sẽ được gửi đến hàm cameraSuccess. Tùy thuộc giá trị
[ cameraOptions ] mà giá trị trả về có thể là chuỗi mã hóa hình ảnh Base64 hay là
đường dẩn đến địa chỉ tập tin ảnh, mặc định sẽ là tùy chọn này. Hàm cameraError
được thực thi khi người dùng hủy bỏ tiến trình nhận về một ảnh image ngay khi bắt
đầu hay khi lỗi xảy ra trong tiến trình
Nền tảng hỗ trợ:
• Android
• BlackBerry WebWorks (OS 5.0 trở lên)
• iOS
• Tizen
• Windows Phone 7 và 8
• webOS
• Bada 1.2
• Phương thức cleanup

Dọn dẹp các tập tin hình ảnh được chụp từ ứng dụng, đang được lưu trữ tại một vị
trí tạm thời, khi phương thức camera.getPicture được sử dụng với
Camera.sourceType = Camera.PictureSourceType.CAMERA và
Camera.destinationType = Camera.DestinationType.FILE_URI . Phương thức này
chỉ được hỗ trợ trên nền tảng iOS
navigator.camera.cleanup( cameraSuccess, cameraError );
Trang21
Báo cáo khóa luận tốt nghiệp
1.3.2.3 Capture
PhoneGap Capture API cung cấp khả năng truy cập thiết bị để nắm bắt một
đoạn âm thanh, ghi âm giọng nói hay một đoạn video. Một lưu ý quan trọng khi sử
dụng API này là vấn đề quyền riêng tư. Ứng dụng của bạn phải được cho phép của
người dùng khi truy cập vào thiết bị. Nếu ứng dụng của bạn sử dụng camera hay
microphone một cách không rõ ràng trên giao diện thì bạn phải cung cấp thông báo
cho phép người dùng lựa chọn được phép truy cập hay là không.
Các thuộc tính của Capture bao gồm:
• supportedAudioModes: Các định dạng âm thanh ghi âm được thiết bị hỗ
trợ.
• supportedImageModes: kích thước hình ảnh ghi lại và định dạng được thiết
bị hỗ trợ.
• supportedVideoModes: Độ phân giải của video ghi lại và định dạng được
thiết bị hỗ trợ.
Các phương thức của Capture bao gồm:
• Phương thức captureAudio
Khởi động ứng dụng ghi âm thanh của thiết bị và ghi lại một đoạn âm thanh.
Cấu trúc: navigator.device.capture.captureAudio( CaptureCB captureSuccess,
CaptureErrorCB captureErrorCallBack, [CaptureAudioOptions options] );
Khi kết thúc, phương thức này trả về danh sách captureSuccess sẽ thực thi với một
danh sách đối tượng MedaFile mô tả cho đoạn âm thanh vừa thu. Nếu phương thức
bị hủy trước khi thu xong thì phương thức captureErrorCallBack sẽ được thực thi

kèm theo một đối tượng CaptureError.
• Phương thức captureImage
Khởi động ứng dụng chụp ảnh của thiết bị để chụp ảnh.
Cấu trúc: navigator.device.capture.captureImage(CaptureCB captureSuccess,
CaptureErrorCB captureError, [CaptureImageOptions options]);
Trang22
Báo cáo khóa luận tốt nghiệp
Khi kết thúc, phương thức này trả về danh sách captureSuccess sẽ thực thi với một
danh sách đối tượng MedaFile mô tả cho đoạn âm thanh vừa thu. Nếu phương thức
bị hủy trước khi thu xong thì phương thức captureErrorCallBack sẽ được thực thi
kèm theo một đối tượng CaptureError.
• Phương thức captureVideo
Khởi động ứng dụng quay video của thiết bị để quay một đoạn video. Đây là
một hoạt động bất đồng bộ, người dùng có thể quay nhiều hơn một video tại một
phiên làm việc.
Cấu trúc: navigator.device.capture.captureVideo( CaptureCB
captureSuccess, CaptureErrorCB captureError, [CaptureVideoOptions options]);
Hoạt động capture kết thúc khi một trong hai bên ngừng ứng dụng ghi hình
hoặc vượt quá số bản ghi tối đa trong CaptureVideoOptions.
Khi kết thúc, phương thức này trả về danh sách captureSuccess sẽ thực thi
với một danh sách đối tượng MedaFile mô tả cho đoạn âm thanh vừa thu. Nếu
phương thức bị hủy trước khi thu xong thì phương thức captureErrorCallBack sẽ
được thực thi kèm theo một đối tượng CaptureError.
• Phương thức MediaFile.getFormatData
Truy xuất và lấy thông tin định dạng của một tập tin media
Cấu trúc: mediaFile.getFormatData( MediaFileDataSuccessCB
successCallback,[MediaFileDataErrorCB errorCallback] );
Nếu thành công, phương thức sẽ gọi phương thức callback
MediaFileDataSuccessCB kèm theo một đối tượng MediaFileData. Nếu thất bại sẽ
gọi đến phương thức errorCallback.

Nền tảng hỗ trợ:
 Android
 BlackBerry WebWorks (OS 5.0 trở lên)
 iOS
Trang23
Báo cáo khóa luận tốt nghiệp
 Bada 2.x
 Windows Phone 7 and 8
Riêng Bada chưa hỗ trợ hai phương thức MediaFile.getFormatData, Phương thức
captureAudio
Danh sách các đối tượng bên trong Capture API
• Đối tượng CaptureAudioOptions
Đóng gói các tùy chọn cấu hình cho phương thức captureAudiobên trong đối
tượng. Các tùy chọn đó bao gồm:
limit – số đoạn âm thanh tối đa có thể ghi lại trong một lần gọi hàm. Giá trị
này có thể lớn hơn hoặc bằng 1(mặc định là 1). duration – giá trị tối đa thời gian
thu, tính bằng giây.
• Đối tượng CaptureImageOptions
Đóng gói các tùy chọn cấu hình cho phương thức captureImage bên trong
đối tượng. Thuộc tính limit xác định số ảnh tối đa của một lần gọi hàm
CaptureImage, giá trị này có thể lớn hơn hoặc bằng 1(mặc định là 1).
• Đối tượng CaptureVideoOptions
Đóng gói các tùy chọn cấu hình cho phương thức captureVideo bên trong đối
tượng. Các tùy chọn đó bao gồm:
limit – số đoạn video tối đa có thể ghi lại trong một lần gọi hàm. Giá trị này
có thể lớn hơn hoặc bằng 1(mặc định là 1). duration – giá trị tối đa thời gian thu,
tính bằng giây.
• Đối tượng MediaFile
Đóng gói các thuộc tính của một tập tin media capture. Các thuộc tính của
MediaFile bao gồm:

o name – tên của tập tin không kèm theo đường dẩn
o fullPath – đường dẩn đầy đủ kèm theo tên tập tin
Trang24
Báo cáo khóa luận tốt nghiệp
o type – kiểu của tập tin
o lastModifiedDate – thời gian cuối cùng tập tin được chỉnh sửa
o size - kích thước của tập tin
• Đối tượng MediaFileData
o Đóng gói thông tin định dạng của tập tin media. Các định dạng đó
gồm:
o codecs – định dạng thực của nội dung video và audio.
o bitrate – giá trị bitrate trung bình của nội dung, với tập tin âm thanh
thì giá trị này bằng 0.
o height – chiều cao của hình ảnh hay chiều cao của một khung nhìn
của tập tin video. Với tập tin audio thì giá trị này bằng 0.
o width: độ rộng của hình ảnh hay độ rộng của một khung nhìn của tập
tin video. Với tập tin audio thì giá trị này bằng 0.
o duration: độ dài của tập tin video hay âm thanh tính theo giây. Với tập
tin hình ảnh thì giá trị này bằng 0.
1.3.2.4 Compass
PhoneGap Compass API đóng vai trò là cảm biến phát hiện, theo giỏi hướng
của thiết bị. Giá trị trả về sẽ nằm trong khoảng từ 0 đến 359,99 độ
Các phương thức của Compass
• compass.getCurrentHeading – lấy giá trị định hướng hiện tại, nếu thành
công thì trả về một đối tượng compassHeading
• compass.watchHeading –định hướng của thiết bị theo từng khoảng thời
gian định trước. Khoảng thời gian đó được xác định trong tham số
compassOptions. Phương thức này trả về một watch ID.
• compass.clearWatch – ngừng việc theo giỏi định hướng theo một watch
ID

• compass.watchHeadingFilter (Lỗi thời)
• compass.clearWatchFilter (Lỗi thời)
Hỗ trợ các nền tảng
o Android
o iOS
o Windows Phone 7 and 8 ( nếu phần cứng hỗ trợ )
o Bada 1.2 & 2.x
Trang25

×