2017-07-14 65 views
0

我有一个Android应用程序,但我不能使用相机。 该应用程序总是打开画廊。 我尝试设置sourceType像Camera.PictureSourceType.CAMERA但不工作...总是打开画廊...有什么不对?navigator.camera.getPicture不打开设备的默认相机应用程序

代码:

(function() { 

document.addEventListener('deviceready', onDeviceReady.bind(this), false); 
function onDeviceReady() { 

    var buttonTakePhoto = document.querySelector("#btnTakePhoto"); 
    if (buttonTakePhoto != null) { 
     buttonTakePhoto.addEventListener("click", capturePhoto, false); 
    } 

}; 

function capturePhoto() { 
    navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, sourceType: Camera.PictureSourceType.CAMERA }); 
}; 

//Callback function when the picture has been successfully taken 
function onPhotoDataSuccess(imageData) { 
    var smallImage = document.getElementById('smallImage'); 
    // Unhide image elements 
    smallImage.style.display = 'block'; 
    smallImage.src = imageData; 
}; 

//Callback function when the picture has not been successfully taken 
function onFail(message) { 
    alert('Failed to load picture because: ' + message); 
}; 

HTML:

<html> 
<head> 
    <meta name="format-detection" content="telephone=no"> 
    <meta name="msapplication-tap-highlight" content="no"> 
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> 

</head> 
<body> 

    <input type="button" value="Tirar Foto" id="btnTakePhoto" class="quitButton" /> 

    <img id="smallImage"/> 

    <script type="text/javascript" src="scripts/takePhoto.js"></script> 
    <script type="text/javascript" src="cordova.js"></script> 
    <script type="text/javascript" src="scripts/platformOverrides.js"></script> 
    <script type="text/javascript" src="scripts/index.js"></script> 
</body> 
</html> 

感谢您的帮助!

回答

0

工作!

Add mediaType:Camera.MediaType.CAMERA in options。

function capturePhoto() { 
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { quality: 50, sourceType: Camera.PictureSourceType.CAMERA, mediaType: Camera.MediaType.CAMERA }); 
相关问题