2017-12-28 23 views
0

카메라에 액세스하려면 다음 코드가있는 ionic 3 앱이 있어야합니다.Ionic 3에서 카메라에 액세스 브라우저에서 실행중인 앱

takePhoto() { 
    const options: CameraOptions = { 
    quality: 50, 
    destinationType: this.camera.DestinationType.DATA_URL, 
    encodingType: this.camera.EncodingType.JPEG, 
    mediaType: this.camera.MediaType.PICTURE, 
    targetWidth: 450, 
    targetHeight: 450, 
    saveToPhotoAlbum: false 
}; 

    this.camera.getPicture(options).then(
    imageData => { 
     this.base64Image = "data:image/jpeg;base64," + imageData; 
     this.photos.push(this.base64Image); 
     this.photos.reverse(); 
     this.sendData(imageData); 
    }, 
    err => { 
     console.log(err); 
    } 
    ); 
} 

내 플 '폼이 android/ios 인 경우 완벽하게 작동하며 사진을 찍습니다. 그러나 플랫폼 '브라우저'에서 내 앱을 실행하고 모바일을 통해 액세스하려고하면 Safari 또는 Chrome에서 다음 오류가 발생합니다.

enter image description here

내 플랫폼 브라우저 인 경우 모바일에서 카메라/갤러리에 액세스 할 수있는 방법은 무엇입니까?

답변

2

먼저 cordova-browser은 테스트 목적으로 만 사용되는 플랫폼이므로 실제 브라우저 앱을 타겟팅하는 데 사용해서는 안됩니다.

cordova-plugin-camera은 브라우저 플랫폼에 navigator.getUserMedia을 사용하므로 iOS 11의 Safari에서는 작동하지만 이전 버전에서는 정상적으로 작동하지 않습니다. iOS 용 Chrome은 일반 웹보기이며 웹보기는 navigator.getUserMedia을 지원하지 않으므로 Chrome에서 작동하지 않습니다.

전화에서 파일을 선택하려면 파일 유형이있는 입력 태그를 사용할 수 있습니다.

<input name="myFile" type="file"> 
+0

답변 해 주셔서 감사합니다. 단지 왜 cordova 브라우저가 실제 브라우저 응용 프로그램에 사용되면 안되는지에 대한 이유를 원하십니까? – Arpit

+0

@Arpit 실제 이유보다 내 의견이 많습니다. 앱을 배포/빌드하지 않고도 쉽게 테스트 할 수 있도록 제작되었으며 실제 플랫폼으로 사용되지 않습니다. 요즘 플랫폼은 조금 성숙하지만 플러그인 지원은 다른 플랫폼과는 거리가 있습니다 (대부분의 플러그인은 브라우저에서 아직 가능하지 않기 때문에) – jcesarmobile