我已经安装了cordova-plugin-camera插件并使用cli代码安装了离子原生/相机.
当我为项目服务时,它显示运行时错误:
Uncaught(in promise):Error: No provIDer for Camera! injectionError
我发送app.module.ts,HTML页面,并输入脚本页面.请看一看.
app.module.ts
import { NgModule,ErrorHandler } from '@angular/core';import { browserModule } from '@angular/platform-browser';import { IonicApp,IonicModule,IonicErrorHandler } from 'ionic-angular';import { MyApp } from './app.component';import { httpModule } from '@angular/http';import { AboutPage } from '../pages/about/about';import { ContactPage } from '../pages/contact/contact';import { HomePage } from '../pages/home/home';import { TabsPage } from '../pages/tabs/tabs';import { Statusbar } from '@ionic-native/status-bar';import { SplashScreen } from '@ionic-native/splash-screen';import { CameraExamplePage } from "../pages/camara-example/camara-example";@NgModule({ declarations: [ MyApp,AboutPage,ContactPage,HomePage,TabsPage,CameraExamplePage ],imports: [ browserModule,httpModule,IonicModule.forRoot(MyApp) ],bootstrap: [IonicApp],entryComponents: [ MyApp,provIDers: [ Statusbar,SplashScreen,{provIDe: ErrorHandler,useClass: IonicErrorHandler} ]})export class AppModule {}
相机拿HTML页面
<ion-header> <ion-navbar> <ion-Title>camaraExample</ion-Title> </ion-navbar></ion-header><ion-content padding> <button ion-button color="dark" (click)="takePhoto()" > Take Photo </button> <img [src]="imageURL" *ngIf="imageURL"> </ion-content>
** TypeScript文件**
import { Component } from '@angular/core';import { IonicPage,NavController,NavParams } from 'ionic-angular';import { Camera,CameraOptions } from '@ionic-native/camera'@IonicPage() @Component({ selector: 'page-camara-example',templateUrl: 'camara-example.HTML',}) export class CameraExamplePage { imageURL constructor(public navCtrl: NavController,public navParams: NavParams,public camera: Camera) { } ionVIEwDIDLoad() { console.log('ionVIEwDIDLoad CameraExamplePage'); } takePhoto() { 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) => { // imageData is either a base64 encoded string or a file URI // If it's base64: //let base64Image = 'data:image/jpeg;base64,' + imageData; this.imageURL = imageData },(err) => { // Handle error }); }}解决方法 您需要在app.module.ts中将Camera设置为提供程序
import { Camera } from '@ionic-native/camera';//import in app.module.ts //... provIDers: [ Statusbar,useClass: IonicErrorHandler},Camera //here ]
While I Serve the project it shows Runtime Error
注意:Cordova插件在离子服务中不起作用..您需要使用模拟器/设备.
另外,在this.platform.ready()中包含你的插件代码,并使用this.platform.is(‘cordova’)检查cordova是否可用
import { Platform } from 'ionic-angular'; //import Platform//...constructor(public platform:Platform){}//...takePhoto() { this.platform.ready().then(() => { if(this.platform.is('cordova')){ this.camera.getPicture(this.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 }); } })}总结
以上是内存溢出为你收集整理的cordova – 没有相机供应商! injectionError全部内容,希望文章能够帮你解决cordova – 没有相机供应商! injectionError所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)