navigator.camera.getPicture不要打开设备的默认相机应用程序

时间:2017-07-14 14:18:33

标签: android cordova

我有一个Android应用程序,但我不能使用相机。 该应用程序始终打开图库。 我尝试设置sourceType像Camera.PictureSourceType.CAMERA但不工作...总是打开画廊...有什么问题?

代码:

(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>

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

工作!

在选项中添加 mediaType:Camera.MediaType.CAMERA

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