2014-05-22 7 views
6

내가 함께 코르도바 3.4을 사용하고을는 onSuccess 또는 onFail 콜백하지 않습니다 3.4.0 카메라 플러그인 내가 전화 코르도바는 navigator.camera.getPicture 안드로이드 4.3

(https://github.com/apache/cordova-plugin-camera/blob/master/doc/index.md)

navigator.camera.getPicture(onSuccess, onFail, { 
     quality: 75, 
     destinationType: window.Camera.DestinationType.FILE_URI, 
     sourceType: window.Camera.PictureSourceType.CAMERA, 
     //allowEdit: true, 
     //cameraDirection: window.Camera.Direction.FRONT, 
     //encodingType: window.Camera.EncodingType.JPEG, 
     //targetWidth: 100, 
     //targetHeight: 100, 
     //popoverOptions: window.CameraPopoverOptions, 
     saveToPhotoAlbum: true 
    }); 
function onSuccess(imageData) { 
    alert(imageData); 
} 
function onFail(message) { 
    alert('Failed because: ' + message); 
} 
이 코드가 작동

Windows Phone 8.1이지만 Android 4.3 (Jelly Bean)에서는 작동하지 않습니다. 내가 일식에서 코드로 들어가면 안드로이드 temp 디렉토리 아래 사진을 성공적으로 저장하지만 자바 스크립트 성공을 호출하지 않거나 완료시 이벤트를 실패하지 않는다는 것을 알 수 있습니다. 그래서 안드로이드에서 이미지를 얻을 수 없습니다.

둘 다 Galaxy Note 2 실제 장치와 에뮬레이터에서 시도했지만 둘 다 onSuccess를 호출하지 않았습니다.

이 문제에 대해 알려진 문제점이나 해결 방법이 있습니까?

+0

http://stackoverflow.com/questions/23653961/cordova-plugin-callback-received-after-second-plugin-call을 확인하십시오. 애플리케이션을 전체 화면 모드로 시작 하시겠습니까? –

+0

@Teoman이 문제가 해결 되었습니까? 나는 또한 cordova 3.5와 동일한 문제에 직면하고있다 – Konza

+0

당신은이 문제를 해결했습니다. – Aravin

답변

0

이 옵션을 시도해보십시오

destinationType: navigator.camera.DestinationType.FILE_URI 
sourceType: source 
mediaType: media 
+0

sourceType과 mediaType의 값은 무엇이되어야합니까? 뭐라구? –

+0

출처 : navigator.camera.PictureSourceType.SAVEDPHOTOALBUM 미디어 : navigator.camera.MediaType.PICTURE – Xcihnegn

+0

안녕하세요, Teoman shipahi, 작동 여부 감사! – Xcihnegn

0

이 작동하지 않는 경우를, 내가 이러한 옵션을 제안 할 수 있습니다. 그들은 4.2.2 (Jellybean) android 및 4.4.2 (Kitkat)에 배포 작업을하고 있습니다.

navigator.camera.getPicture(this.onPhotoDataSuccess, this.onFail, { 
      quality: 50, 
      destinationType: Camera.DestinationType.DATA_URL, 
      sourceType: Camera.PictureSourceType.CAMERA 

     }); 

// 읽기와 DOM을

onPhotoDataSuccess(imageData) { 
     var smallImage = document.getElementById('smallImage'); 
     smallImage.style.display = 'block'; 
     smallImage.src = "data:image/jpeg;base64," + imageData; 
    } 

를 추가이 base64로 인코딩 된 이미지를 반환합니다.

+0

전혀 작동하지 않습니다. – Aravin

+0

귀하의 전화에 액세스 할 수 있도록 전화에 대한 코드가 규정되어 있습니까? –

0

누구에게 도움이된다면, 나는이 똑같은 문제를 안고있었습니다. 앱의 Cordova "일시 중지"이벤트에서 "navigator.camera.cleanup()"을 호출하는 것으로 밝혀졌습니다 (따라서 앱이 백그라운드로 전송 될 때 리소스가 정리됩니다). 여기서 문제는 카메라가 앱을 배경으로 보냈다는 것입니다. 따라서 분명히 정리를 호출하는 것은 문제를 일으키는 것입니다.

관련 문제