0

이미지를 이오닉 응용 프로그램에 업로드하기 전에 자르기를 용이하게하려고합니다. 그것은 이미지 갤러리에서 이미지를 선택할 때 잘 작동하지만 그 이유는 카메라가 사진을 직접 찍을 때 "카메라가 취소되었습니다"과 함께 실패합니다.이오닉 - allowEdit가 true 일 때 "카메라 취소"

저는 Cordova의 기본 카메라 플러그인 인 cordova-plugin-camera를 사용하고 있습니다. 내 코드의 관련 스 니펫은 다음과 같습니다.

$scope.openCamera = function() { 
    navigator.camera.getPicture(
     onSuccess(), 
     onFailure(), 
     { 
      allowEdit: true, 
      quality: 100, 
      sourceType: navigator.camera.PictureSourceType.CAMERA, 
      destinationType: navigator.camera.DestinationType.FILE_URI, 
      encodingType: Camera.EncodingType.JPEG, 
      mediaType: Camera.MediaType.PICTURE, 
      targetWidth: 100, 
      targetHeight: 100, 
      correctOrientation: true 
     } 
    ); 
} 

카메라는 사진을 올바르게 캡처하고 자르기 영역을 선택할 수있는 이미지도 표시합니다. 그러나 실패하고 onSuccess() 대신 onFailure()를 입력합니다.
onFailure() 콜백은 "카메라 취소됨"오류를 인쇄합니다. 이 버그는 내가 테스트 한 여러 가지 Android 빌드의 5 개의 휴대 전화 중 3 개에서 발생했습니다.

도움이 될 것입니다.

+0

[이 질문에] (http://stackoverflow.com/questions/34423861/cordova-camera-getpicture-fails-with-camera-cancelled)을보십시오 – Frix33

+0

당신은 이것에 대한 답변을 찾았습니까? 비슷한 문제가 있습니다. –

+0

@ MarkA.Rupert 나는 그것을하기 위해 cordova-plugin-crop을 사용하는 것을 끝내었다. 기본적으로 내 onSuccess() 함수는 targetWidth, targetHeight 등을 처리하는 자르기 플러그인을 호출합니다. – Ekta

답변

1

모든 Android/iOS 기기에서 원하는 결과를 얻으려면 cordova-plugin-crop을 사용하여 해결 방법을 찾았습니다. 다음은 업데이트 된 코드 스 니펫입니다.

$scope.openCamera = function() { 
    navigator.camera.getPicture(
     onSuccess(), 
     onFailure(), 
     { 
      quality: 100, 
      destinationType: destinationType.FILE_URI 
     } 
    ); 
} 

function onSuccess(fileURI) { 
      plugins.crop.promise(fileURI, { 
       quality: 100, 
       destinationType: destinationType.FILE_URI, 
       encodingType: Camera.EncodingType.JPEG, 
       mediaType: Camera.MediaType.PICTURE, 
       allowEdit: true, 
       targetWidth: 100, 
       targetHeight: 100, 
      }).then(function success(newPath) { 
       // Call API to upload the file 
      }).catch(function fail(err) { 
       // Handle failure 
      }) 
     } 

희망이 있습니다.