HTML5 ที่เป็น Framework อย่าง Sencha Touch 2.0 และตัวอื่นที่เป็นเว็บก็ตามหากว่านำมาพัฒนาร่วมกับ PhoneGap เมื่อใดจะสามารถเรียก Device Function อย่างกล้องได้
Class สำหรับ Sencha Touch 2.0 นั้นมีส่วนเรียกใช้งาน Device Function ผ่าน PhoneGap อย่างเวอร์ชันของ Facebook Mobile เวอร์ชันก่อนที่เป็น HTML5 เวลาเปิดผ่าน http://m.facebook.com จะไม่สามารถถ่ายภาพได้ แต่ถ้าเปิดผ่านแอพพลิเคชันจะสามารถถ่ายภาพได้เพราะนั่นเป็นการทำงานเรียกฟังก์ชันกล้องผ่าน PhoneGap นั่นเองครับ
ดังนั้น ถ้าหากว่าจะทำงาน Web Platform เรียก Device ของกล้องขึ้นมานั้นคุณต้องเตรียมพร้อมในเครื่องมือต่อไปนี้
- Sencha Packager
- PhoneGap
- Simulator ของสมาร์ทโฟน
เสร็จแล้วให้ทำการ Set up ตัว Environment ของ PhoneGap ให้เข้ากับ Sencha Framework แค่นั้นเราก็จะสามารถใช้ Sencha ควบคุม Device Function อย่างกล้องดิจิตอลของสมาร์ทโฟนได้แล้วครับ
โดยฟังก์ชันที่จะใช้งานนั้นคือ Capture จาก Class ของ Camera ครับ
Ext.device.Camera.capture({
success: function(image) {
imageView.setSrc(image);
},
quality: 75,
width: 200,
height: 200,
destination: 'data'
});
ส่วนการ ตั้งค่าอื่นๆก็อาจจะต้องพึ่งค่าต่างๆ เหล่านี้
ตัวแปรที่ส่ง
- options : Object
เป็น Option ที่เกิดขึ้นหลังจากจับภาพเสร็จแล้วให้เก็บลงใน Object ตัวหนึ่ง - success : Function
ส่ง success เป็นตัวแปรไปเตือนว่าการถ่ายภาพเสร็จสิ้นและภาพถูกเก็บใน Device แล้ว
ส่วน Parameters อื่นๆประกอบ Method ของ capture คือ
- image : String
เป็นรูปแบบ String เก็บค่าตัวอักษรเครื่องหมายต่างๆได้ สามารถเข้าระบบ Base64 ได้ - failure : Function
ค่าสำหรับ Return ว่าเกิดข้อผิดพลาด - quality : Number
ส่งค่า quality สำหรับบีบอัดภาพว่ามีคุณภาพสูงแค่ไหนเป็น Callback กลับไปยัง Method ที่เรียกมา - source : String
เก็บพื้นที่ที่ทำการจัดเก็บภาพไว้
ส่วนอื่นๆ ก็อาจจะมี
- album – ถ้าต้องการเขียนให้ภาพเก็บลงอัลบัมในเครื่อง
- camera – ทำการเตรียมเมื่อต้องการจะถ่ายภาพ Return กลับไป
เป็นต้น
ส่วนประเภทไฟล์ของภาพที่จะทำการเก็บนั้นก็คงหนีไม่พ้น Parameter เหล่านี้
มีค่า “jpg” หรือ “png”
และค่าตัแปรของขนาดภาพ
- width : Number
เป็นค่ากำหนดความกว้างของภาพที่เก็บ - height : Number
เป็นค่ากำหนดความสูงของภาพที่เก็บ
หมายเหตุสำหรับ Method ของ Sencha ในส่วนของ Capture นั้นจำเป็นต้องใช้ Type ดังนี้ครับ
capture( Object options, Object scope, String destination,
String encoding, Number width, Number height )
ถึงจะสามารถจับภาพได้นั่นเองครับ