无法在Ionic应用程序中打开手机摄像头

时间:2019-06-20 05:50:16

标签: android ionic-framework android-camera ionic4

我的目标是通过相机或文件存储上传多个文件,我正在使用ng2FileSelect通过Ionic应用程序将多个文件上传到服务器,这就是它的HTML:

<input (change)="upload()" type="file" ng2FileSelect
[uploader]="uploader" multiple accept="image/*" capture="environment">

在chrome上的localhost上运行时,它会成功提供选项,以打开移动摄像头或从存储中选择文件。但是在Ionic DevApp或Android设备上(通过APK)对其进行测试时,它直接打开文件存储空间,而不提供打开手机摄像头的选项。是否可以通过上述输入标签实现上述目标,还是我不得不使用一种单独的方法从相机上载文件,例如Cordova相机插件等?

1 个答案:

答案 0 :(得分:2)

ng2FileSelect是特定于浏览器的,可能会在本机设备上造成问题。我的建议是使用cordova相机插件。

您可以通过此命令安装插件

ionic cordova plugin add cordova-plugin-camera
npm install @ionic-native/camera

它支持以下平台

  • Android
  • 浏览器
  • iOS
  • Windows

用法

import { Camera, CameraOptions } from '@ionic-native/camera/ngx';

constructor(private camera: Camera) { }

...


const options: CameraOptions = {
  quality: 100,
  destinationType: this.camera.DestinationType.FILE_URI,
  encodingType: this.camera.EncodingType.JPEG,
  mediaType: this.camera.MediaType.PICTURE
}

this.camera.getPicture(options).then((imageData) => {
 // imageData is either a base64 encoded string or a file URI
 // If it's base64 (DATA_URL):
 let base64Image = 'data:image/jpeg;base64,' + imageData;
}, (err) => {
 // Handle error
});