Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';在实现摄像头插件后,请不要再打开摄像头页面_Javascript_Typescript_Ionic Framework_Ionic4_Capacitor - Fatal编程技术网

Javascript Can';在实现摄像头插件后,请不要再打开摄像头页面

Javascript Can';在实现摄像头插件后,请不要再打开摄像头页面,javascript,typescript,ionic-framework,ionic4,capacitor,Javascript,Typescript,Ionic Framework,Ionic4,Capacitor,我想使用带电容相机插件的本机相机。但在实现之后,我无法再打开页面(当我单击将我路由到该页面的按钮时,什么也没有发生),我发现错误必须出现在已注释的html部分。但它没有显示错误。当该部分没有注释时,整个应用程序将加载 page.html <ion-content> <!-- <ion-card> <img role="button" class="image" (click)="onPickImage" [src

我想使用带电容相机插件的本机相机。但在实现之后,我无法再打开页面(当我单击将我路由到该页面的按钮时,什么也没有发生),我发现错误必须出现在已注释的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>

拍照
第页

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() {
  }

}
从'@angular/core'导入{Component,OnInit,Output,EventEmitter};
从“@capactor/core”导入{插件、电容器、CameraSource、CameraResultType};
@组成部分({
选择器:“应用程序cam”,
templateUrl:'./cam.page.html',
样式URL:['./cam.page.scss'],
})
//卡米拉芬克土著。重要人物
导出类营地实现OnInit{
@Output()imagePick=neweventemitter();
选择图像:字符串;
构造函数(){}
onPickImage(){
如果(!capactor.isPluginAvailable('Camera')){
return;//kein Kamera vorhanden瀑布。
}
Plugins.Camera.getPhoto({
质量:50,
来源:CameraSource.Prompt,//Prompt heisst entweder Gallery oder Camera vlt Stylescher Separater Button hinzufügen
对,,
身高:320,
宽度:200,
resultType:CameraResultType.Base64//Img编码为字符串,可以转换为文件
})。然后(图像=>{
this.selectedImage=image.base64字符串;
this.imagePick.emit(image.base64String);
}).catch(错误=>{//错误处理程序
console.log(错误);
返回false;
})
}
onImagePicked(图像:字符串){
}
恩戈尼尼特(){
}
}

首先要注意的是,您不应该实际使用
Base64
编码选项

这是一个众所周知的糟糕文档,因为它会导致人们在不是最佳实践的情况下使用它

原因是它以这种方式使用了大量内存,并使一些设备崩溃

第二,当你说没有错误,你的意思是没有错误显示在视觉上

当Ionic/Angular崩溃时,它会将消息转储到控制台

您可以使用浏览器开发人员工具看到这一点:

或者,如果您在Mac上:


我实际上收到了这个错误
错误错误:未捕获(承诺中):错误:模板分析错误:“应用程序图像选取器”不是已知元素,尽管我将其添加到共享模块的导出中。这是一个不同的问题,因此我建议启动一个新的问题或编辑此问题,以吸引可以提供帮助的人-他们不会在评论中发现隐藏的问题。投票表决已经起到作用的东西。如果已将其添加到共享模块,则已将该共享模块导入。似乎是一个具体且容易解决的问题。也许看一看Josh的教程,它会在页面中解释和使用它,这会让你大开眼界。