ionic2 @ionic-native/camera-preview应用

ionic2 @ionic-native/camera-preview集成应用

demo: https://github.com/wangzuxing/myionic2prj

1、创建项目工程(命令行方式)

ionic start myionic2prj blank --v2   //--v2 参数 指示创建ionic2工程 
cd myionic2prj

2、
在package.json中添加(根据应用所需功能添加相应依赖项):
添加项目依赖

"dependencies": {
    ...
    "@ionic-native/camera": "^3.5.0",
    "@ionic-native/camera-preview": "^3.5.0",
    ...
    "ionic-native": "^3.5.0",
    ...
},

添加cordovaPlugins项
内容包括一些常用cordova plugin和你所需插件cordova-plugin-camera
(项目创建默认是不包括此”cordovaPlugins”项的,个人应用发现必须添加,ionic plugin add ×××安装插件也必须在cordovaPlugins项添加相应支持
—底层打包确实是由cordova完成的)

"cordovaPlugins": [
    "cordova-plugin-whitelist",
    "cordova-plugin-console",
    "ionic-plugin-keyboard",
    "cordova-plugin-statusbar",
    "cordova-plugin-device",
    "cordova-plugin-splashscreen",
    "cordova-plugin-camera",
    "cordova-plugin-camera-preview"
],

独立安装所需插件
//camera-preview plugin

npm install @ionic-native/camera-preview --save

//cordova-plugin-camera-preview (底层插件)

ionic plugin add cordova-plugin-camera-preview  
// 或执行“cordova plugin add cordova-plugin-camera-preview”  完成后,可执行”ionic plugin list“命令显示项目已安装插件

3、
npm install //或使用”cnpm install” 主要完成安装所需模块(根据package.json中的配置参数指明所需模块)到node_modules目录,同时会生成相应的配置项在config.xml中

4、

ionic platform add android             // 添加platform支持 

5、
src/app/app.module.ts 添加:

import { CameraPreview } from '@ionic-native/camera-preview';   //1、导入模块

@NgModule({
  providers: [
    ...
    CameraPreview,                                      //2、注册为应用的的服务模块
    ...
  ]
})

src/pages/my-page4/my-page4.scss:

.displaybottom{
  padding-top: 86%;
  bottom: 0;   
}

src/pages/my-page4/my-page4.html:
<ion-header>
    <ion-navbar>
        <ion-title>Camera Preview</ion-title>
    </ion-navbar>
</ion-header>
<ion-content padding>
    <h5>This is camera Preview Application..</h5>
    <div class="displaybottom">
        <button ion-button (click)="startCamera()"> Start Camera</button>
        <button ion-button (click)="stopCamera()"> Stop Camera</button>
        <button ion-button (click)="takePicture()"> Take Picture Camera</button>
        <button ion-button (click)="SwitchCamera()"> Switch  Camera</button>
        <button ion-button (click)="showCamera()"> Show Camera</button>
        <button ion-button (click)="hideCamera()"> Hide Camera</button>
    </div>
    <div class="pictures">
        <p><img id="previewPicture" width="200" /></p>
        <!--<p><img id="originalPicture" width="200"/></p>-->
    </div>
</ion-content>

src/pages/my-page4/my-page4.ts文件中导入应用:

import { IonicPage, NavController } from 'ionic-angular';
import { Component,NgZone} from "@angular/core";
import { CameraPreview } from '@ionic-native/camera-preview';   //导入模块 

@IonicPage()
@Component({
  selector: 'page-my-page4',
  templateUrl: 'my-page4.html',
})

export class MyPage4 {
    public getWidth: number;
    public getHeight : number;
    public calcWidth : number;
    constructor(private nav: NavController, private zone:NgZone, private cameraPreview:CameraPreview){
        this.zone.run(() => {
            this.getWidth = window.innerWidth;
            this.getHeight = window.innerHeight;
        }); 
        this.calcWidth = this.getWidth - 80;  
    }

    startCamera(){
        this.cameraPreview.startCamera({x: 40, y: 100, width: this.calcWidth, height: 220, toBack: false, previewDrag: true, tapPhoto: true});      
    }

    stopCamera(){
        this.cameraPreview.stopCamera();
    }

    takePicture(){
         this.cameraPreview.takePicture(function(imgData){
            (<HTMLInputElement>document.getElementById('previewPicture')).src = 'data:image/jpeg;base64,' + imgData;
         });
    }

    SwitchCamera(){
        this.cameraPreview.switchCamera();
    }
    showCamera(){
        this.cameraPreview.show();
    }
    hideCamera(){
        this.cameraPreview.hide();
    }
}

7、

ionic run android                      //android真机/模拟器调试

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值