Не могу открыть страницу камеры после установки плагина камеры - PullRequest
0 голосов
/ 08 июля 2019

Я хочу использовать родную камеру с плагином для конденсаторной камеры. Но после реализации я больше не могу открыть страницу (когда я нажимаю кнопку, которая направляет меня на эту страницу, ничего не происходит), я обнаружил, что ошибка должна быть в разделе html с комментариями. Но это не показывает ошибку. Целое приложение загружается, когда раздел не прокомментирован.

page.html

<ion-content>
  <!--
    <ion-card>
  <img
    role="button"
    class="image"
    (click)="onPickImage"
    [src]="selectedImage"
    *ngIf="selectedImage"
  >
  </ion-img>
</ion-card>
-->

<ion-footer>
  <ion-button (click)="onPickImage()" *ngIf="!selectedImage" class="buttonPost" expand="full" color="primary">Take Photo</ion-button>


</ion-footer>

page.ts

import { Component, OnInit, Output, EventEmitter  } from '@angular/core';
import { Plugins, Capacitor, CameraSource, CameraResultType } from '@capacitor/core';



@Component({
  selector: 'app-cam',
  templateUrl: './cam.page.html',
  styleUrls: ['./cam.page.scss'],
})

//Native Kamerafunk. importieren hier
export class CamPage implements OnInit {
  @Output() imagePick = new EventEmitter<String>();
  selectedImage: string;

  constructor() { }


  onPickImage() {
    if (!Capacitor.isPluginAvailable('Camera')) {
      return; //falls kein Kamera vorhanden ist. 
    }
    Plugins.Camera.getPhoto({
      quality: 50,
      source: CameraSource.Prompt, //Prompt heisst entweder Gallery oder Camera vlt stylischer seperater Button hinzufügen
      correctOrientation: true,
      height: 320,
      width: 200,
      resultType: CameraResultType.Base64 //Img encoded into a string, can be converted into a file
    }).then(image => {    
      this.selectedImage = image.base64String;
      this.imagePick.emit(image.base64String);
    }).catch(error => {      //Error Handler
      console.log(error);
      return false;
    })

  }


  onImagePicked(image: string) {

  }



  ngOnInit() {
  }

}

1 Ответ

0 голосов
/ 09 июля 2019

Первое, что нужно отметить, это то, что вы не должны использовать параметры кодирования Base64.

Это известная плохая документация, так как это приводит людей к ее использованию, когда это не лучшая практика.

Причина в том, что таким образом он использует много памяти и приводит к сбою некоторых устройств.

Во-вторых, когда вы говорите, что ошибки нет, вы имеете в виду отсутствие визуальной ошибки?

При сбое Ionic / Angular сообщение выводится на консоль.

Это можно увидеть с помощью инструментов разработчика браузера:

Использование Chrome DevTools - Разработка Android - Ионная документация

или если вы на Mac:

Использование Safari Web Inspector - Разработка для iOS - Ионная документация

...