我正在尝试在Ionic 4中使用Camera Plugin,并且启动服务时没有出现错误,在浏览器控制台中会出现以下错误:
我删除了node_modules文件夹并重新安装,但是无法修复。
npm安装
使用ActionSheet时,我会遇到相同的错误。
程序包中的依赖项:
"dependencies": {
"@angular/common": "~6.1.1",
"@angular/core": "^6.1.2",
"@angular/forms": "~6.1.1",
"@angular/http": "~6.1.1",
"@angular/platform-browser": "^6.1.2",
"@angular/platform-browser-dynamic": "~6.1.1",
"@angular/router": "~6.1.1",
"@ionic-native/action-sheet": "^4.11.0",
"@ionic-native/camera": "^4.11.0",
"@ionic-native/core": "^5.0.0-beta.14",
"@ionic-native/file-transfer": "^4.11.0",
"@ionic-native/network": "^4.11.0",
"@ionic-native/splash-screen": "5.0.0-beta.14",
"@ionic-native/status-bar": "5.0.0-beta.14",
"@ionic/angular": "^4.0.0-beta.2",
"@ionic/lab": "^1.0.6",
"@ionic/ng-toolkit": "^1.0.6",
"@ionic/schematics-angular": "^1.0.0",
"cordova-android": "^7.1.1",
"cordova-android-support-gradle-release": "^1.4.4",
"cordova-ios": "4.5.5",
"cordova-plugin-actionsheet": "^2.3.3",
"cordova-plugin-camera": "^4.0.3",
"cordova-plugin-device": "^2.0.2",
"cordova-plugin-file": "^6.0.1",
"cordova-plugin-file-transfer": "^1.7.1",
"cordova-plugin-ionic-keyboard": "^2.1.2",
"cordova-plugin-ionic-webview": "^2.0.2",
"cordova-plugin-network-information": "^2.0.1",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-whitelist": "^1.3.3",
"core-js": "^2.5.3",
"promise-polyfill": "^8.0.0",
"rxjs": "^6.2.2",
"rxjs-compat": "^6.2.2",
"zone.js": "^0.8.26"
},
谢谢
-冗长:
ionic:cli-framework:utils:process onBeforeExit handler: process.exit received +0ms
ionic:cli-framework:utils:process onBeforeExit handler: running 1 queued functions +6ms
ionic:cli-framework:utils:process error while killing process tree for 8104: { Error: Command failed: taskkill /pid 8104 /T /F ERROR: no se encontr� el proceso "8104". at ChildProcess.exithandler (child_process.js:275:12) at emitTwo (events.js:126:13) at ChildProcess.emit (events.js:214:7) at maybeClose (internal/child_process.js:925:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) killed: false, code: 128, signal: null, cmd: 'taskkill /pid 8104 /T /F' } +60ms
net.js:714
throw new TypeError(
^
仅当某些TS文件具有导入时,才会出现此错误。是否使用都没关系。
从“ @ ionic-native / action-sheet”导入{ActionSheet,ActionSheetOptions};
答案 0 :(得分:5)
我已经解决了!
我需要安装@ 5.0.0-beta.17软件包。
npm i -s @ ionic-native / camera @ 5.0.0-beta.17
npm i -s @ ionic-native / action-sheet @ 5.0.0-beta.17
然后,我可以将其用于:
import { Camera, CameraOptions } from '@ionic-native/camera/ngx';
import { ActionSheet, ActionSheetOptions } from '@ionic-native/action-sheet/ngx';
答案 1 :(得分:0)
确保正确安装了Camera插件和节点模块
步骤1:删除当前的节点模块,然后使用重新安装
npm install
第2步:重建平台(删除旧平台)并安装插件
$ ionic cordova plugin add cordova-plugin-camera
$ npm install --save @ionic-native/camera
在您的TS文件中
import { Component } from '@angular/core';
import { IonicPage, NavController,ActionSheetController } from 'ionic-angular';
import { Camera, CameraOptions } from '@ionic-native/camera';
import { Storage } from '@ionic/storage';
@IonicPage()
@Component({
selector: 'page-field-observation',
templateUrl: 'field-observation.html',
})
export class FieldObservationPage {
CapturedImageURL:any;
constructor(
public navCtrl: NavController,
private camera: Camera,
public actionSheetCtrl: ActionSheetController,
public storage:Storage
){
}
ionViewDidLoad() {
}
captureImage() {
const CamOptions: CameraOptions = {
quality: 100,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
sourceType: this.camera.PictureSourceType.CAMERA,
targetWidth:1024,
targetHeight:720
}
this.camera.getPicture(CamOptions).then((imageData) => {
console.log(imageData);
this.CapturedImageURL = imageData;
});
}
captureImageGallery(){
const options: CameraOptions = {
quality: 100,
destinationType: this.camera.DestinationType.FILE_URI,
encodingType: this.camera.EncodingType.JPEG,
mediaType: this.camera.MediaType.PICTURE,
sourceType:0,
saveToPhotoAlbum:true,
targetWidth:1024,
targetHeight:720,
allowEdit:true
}
this.camera.getPicture(options).then((imageData) => {
this.CapturedImageURL = imageData;
});
}
CameraActionSheet() {
let actionSheet = this.actionSheetCtrl.create({
title: 'Choose an image from',
enableBackdropDismiss:true,
buttons: [
{
text: 'Camera',
icon: 'camera',
handler: () => {
this.captureImage();
}
},
{
text: 'Library',
icon: 'image',
handler: () => {
this.captureImageGallery();
}
},
{
text: 'Cancel',
role: 'cancel',
icon:'close-circle',
handler: () => {
console.log('Cancel clicked');
}
}
]
});
actionSheet.present();
}
}