首先找到官方文档:https://ionicframework.com/docs/native/camera/
1、安装插件及模块
ionic cordova plugin add cordova-plugin-camera
npm install --save @ionic-native/camera
2、在app.modules.ts中引入并在providers中注册
import { Camera } from '@ionic-native/camera';
3、在用到的页面引用
import { Camera, CameraOptions } from '@ionic-native/camera'; constructor(private camera: Camera) { } ... 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; }, (err) => { // Handle error });
例子:
<button ion-button color="secondary" (click)="doCamera()">拍照</button> <img *ngIf="base64Image" [src]="base64Image" />
import { Component } from '@angular/core'; import { NavController } from 'ionic-angular'; import { Device } from '@ionic-native/device'; import { Camera, CameraOptions } from '@ionic-native/camera'; @Component({ selector: 'page-home', templateUrl: 'home.html' }) export class HomePage { public uuid=''; public model=''; public platform=''; public base64Image=''; constructor(public navCtrl: NavController,private device: Device,private camera: Camera) { // alert('Device UUID is: ' + this.device.uuid); this.uuid=this.device.uuid; this.model=this.device.model; this.platform=this.device.platform; } doCamera(){ const options: CameraOptions = { quality: 100, //图片质量 destinationType: this.camera.DestinationType.FILE_URI, /*返回的类型*/ encodingType: this.camera.EncodingType.JPEG, sourceType:this.camera.PictureSourceType.CAMERA, // mediaType: this.camera.MediaType.PICTURE, allowEdit:true, targetWidth:300, /*宽度高度要设置*/ targetHeight:300 } this.camera.getPicture(options).then((imageData) => { // 返回拍照的地址 /* base64的地址 this.camera.DestinationType.DATA_URL this.base64Image = 'data:image/jpeg;base64,' + imageData; */ this.base64Image=imageData; }, (err) => { // Handle error }); } }