ionic3中的手写板插件--个性签名、画图等简单玩法(ionic2也通用)

9 篇文章 0 订阅
8 篇文章 0 订阅

1、通过npm安装包angular2-signaturepad:

 npm install angular2-signaturepad --save,可以使用cnpm 安装,mac可以加入权限sudo 进行安装。

2、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 { SignaturePadModule } from 'angular2-signaturepad';// 签名插件

...//其他

@NgModule({
  declarations: [
  ... //其他页面
    QuestionnairePage,//使用签名功能的页面
  ...
  ],
  imports: [
  ...//其他
    SignaturePadModule,//填入手写板模块
    ...
  ],
  bootstrap: [IonicApp],
  entryComponents: [
   ...//其他
    QuestionnairePage,
    ...
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    HttpServerProvider
  ]
})
export class AppModule {}

3、在要使用签名功能的QuestionnairePage页面使用:
在questionnaire.ts中:

import { Component, ViewChild } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { SignaturePad } from 'angular2-signaturepad/signature-pad';//引入手写板

@IonicPage()
@Component({
  selector: 'page-questionnaire',
  templateUrl: 'questionnaire.html',
})
export class QuestionnairePage {
  @ViewChild(SignaturePad) public signaturePad: SignaturePad; //第二视图
  signatureImage: string; //定义类型
  signaturePadOptions: Object = {
    'minWidth': 2,
    'canvasWidth': 220,
    'canvasHeight': 120
  };
  constructor(public navCtrl: NavController, public navParams: NavParams) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad QuestionnairePage');
  }
  ngAfterViewInit() {
    this.signaturePad.clear();
    this.canvasResize();
  }
  // 清除模板
  drawClear() {
    this.signaturePad.clear();
  }
  canvasResize() {
    let canvas = document.querySelector('canvas');
    this.signaturePad.set('minWidth', 2);
    this.signaturePad.set('canvasWidth', canvas.offsetWidth);
    this.signaturePad.set('canvasHeight', canvas.offsetHeight);
  }
  
  // 完成生成图片
  drawComplete(sign) {
    this.signatureImage = this.signaturePad.toDataURL();
    console.log(this.signatureImage);
  }
}

在questionnaire.html中:

<ion-header>

    <ion-navbar color="primary">
        <ion-title>
            问卷调查
        </ion-title>
    </ion-navbar>

</ion-header>


<ion-content>
  <div class="normal-page">
   <div class="footer">
            <div class="right-sign">
              <span>签名:</span>
              <signature-pad [options]="signaturePadOptions" id="signatureCanvas"></signature-pad>
              <span (click)='drawClear()'>清除</span>
            </div>
            <!-- <div>
              <button (click)='drawComplete()'>显示图片</button>
              <img [src]="signatureImage" *ngIf="signatureImage" />
            </div> -->
            <div class="btn">
              <button class="button" (click)='knows()'>我知道了</button>
            </div>
          </div>
  </div>
</ion-content>

questionnaire.module.ts中:

import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { QuestionnairePage } from './questionnaire';
import { SignaturePadModule } from 'angular2-signaturepad';



@NgModule({
  declarations: [
    QuestionnairePage,
  ],
  imports: [
    SignaturePadModule,
    IonicPageModule.forChild(QuestionnairePage),
  ],
})
export class QuestionnairePageModule {}

questionnaire.scss中:

page-questionnaire{
signature-pad {
   canvas {
            border: dashed 1px #cccccc;
            width: 100%; 
            height: 120px;
          }
      }
}

重启ionic3服务:ionic serve,就可以看到成果了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值