Сбой приложения Ionic после открытия родной камеры - ошибка 20 - PullRequest
1 голос
/ 16 апреля 2019

Я использую плагин Cordova Camera на ionic 4 для захвата некоторого изображения.

takePicture() {
   console.log(' camera takePicture ');
   const options: CameraOptions = {
      quality: 100,
      destinationType: this.camera.DestinationType.DATA_URL,
      encodingType: this.camera.EncodingType.JPEG,
      mediaType: this.camera.MediaType.PICTURE
    }

this.camera.getPicture(options).then((imageData) => {
  this.selectedImage = 'data:image/jpeg;base64,' + imageData;
 }, (err) => {
   // Handle error
   console.log('Camera issue:' + err);
 });

}

Приложение завершается сбоем, но этот код всегда возвращает Проблема с камерой: 20 , и интерфейс камеры никогда не отображается на экране телефона.

Я попытался изменить файл config.xml следующим образом, потому что я думал, что это проблема с разрешениями Android, но все еще не работает:

<config-file mode="merge" parent="/*" target="AndroidManifest.xml">
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.camera.autofocus" />
<!--            <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />-->
<!--            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />-->
</config-file>

Я должен был прокомментировать хранилище, потому что оно разрушило приложение в той же строке.

Также я попытался удалить и переустановить плагин

ionic cordova plugin remove cordova-plugin-camera
npm uninstall @ionic-native/camera

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

Понятия не имею, как решить эту проблему, мне нужна помощь, пожалуйста. Спасибо!

1 Ответ

1 голос
/ 22 апреля 2019

Вы должны использовать плагин cordova-plugin-camera-preview для управления камерой в ионном режиме.Обратите внимание, что этот плагин совместим только с Android и iOS.

Установите его с:

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

Использование:

// camera options (Size and location). In this example, the preview uses the rear camera and displays the preview in the back of the webview 
const cameraPreviewOpts: CameraPreviewOptions = { 
    x: 0, 
    y: 0, 
    width: window.screen.width, 
    height: window.screen.height, 
    camera: 'rear', 
    tapPhoto: true, 
    previewDrag: true, 
    toBack: true, 
    alpha: 1 
} 

// start camera 
this.cameraPreview.startCamera(cameraPreviewOpts).then( 
    (res) => { console.log(res) }, 
    (err) => { console.log(err) }
);
...