capture.captureImage
开启摄像头应用程序,返回采集到的图像文件信息。
使用方法:
navigator.device.capture.captureImage(
CaptureCB captureSuccess, CaptureErrorCB captureError, [CaptureImageOptions options]
);
该方法通过设备的摄像头应用程序开始一个异步操作以采集图像。该操作允许设备用户在一个会话中同时采集多个图像。
当用户退出摄像头应用程序,或系统到达CaptureImageOptions的limit参数所定义的最大图像数时都会停止采集操作。如果没有设置limit参数的值,则使用其默认值1,也就是当用户采集到一个图像后采集操作就会终止。
当采集操作结束后,系统会调用CaptureCB回调函数,传递一个包含每个采集到的图像文件的MediaFile对象数组。如果用户在完成一个图像采集之前终止采集操作,系统会调用CaptureErrorCB回调函数,并传递一个包含CaptureError.CAPTURE_NO_MEDIA_FILES错误代码的CaptureError对象。
CaptureImageOptionslimit: 在单个采集操作期间能够采集的图像数量最大值,必须设定为大于等于1(默认值为1)。
mode: 选定的图像模式,必须设定为capture.supportedImageModes枚举中的值。
一段例子代码:
<!DOCTYPE html>
<html>
<head>
<title>capture.captureAudio</title>
<script type="text/javascript" charset="utf-8" src="js/cordova-2.6.0.js"></script>
<script type="text/javascript" charset="utf-8">
//captureAudio方法成功执行后回调函数
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
//业务逻辑
navigator.notification.alert(mediaFiles[i].fullPath + " " +mediaFiles[i].name);
}
}
//captureAudio方法执行失败后回调函数
function captureError(error) {
var msg = 'capture 发生错误: ' + error.code;
navigator.notification.alert(msg, null, 'Uh oh!');
}
function captureImage() {
// limit 拍照的张数
navigator.device.capture.captureImage(captureSuccess, captureError, {limit: 2});
}
</script>
</head>
<body>
<h1>capture.captureImage</h1><br/>
<button οnclick="captureImage();">Capture Audio</button> <br>
</body>
</html>
运营如图:
拍照完成后,弹出文件地址和名称,会弹出两次,因为我们设置了拍摄两张照片