@ ionic-native / printer无法正常工作

时间:2017-11-11 06:57:30

标签: android cordova ionic-framework printing ionic-native

我使用了@ ionic-native / printer插件来实现账单报告的打印选项。

我使用此命令行安装了插件:

    npm install --save @ionic-native/printer

然后在viewbill.html中我放了一行来激活打印机:

    <button ion-button (click)="print()">
    <ion-icon name="print">
      </ion-icon>
      Print
    </button>

然后我的viewbill.ts代码:

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams, Platform, AlertController } from 'ionic-angular';
import { Printer, PrintOptions } from '@ionic-native/printer';

@IonicPage()
@Component({
  selector: 'page-viewbill',
  templateUrl: 'viewbill.html',
})
export class ViewbillPage {

  public srNo = [];
  public particulars = [];
  public particularAmt = [];
  constructor(public navCtrl: NavController,
              public navParams: NavParams,
              public printer: Printer,
              public platform: Platform,
              public alertCtrl: AlertController) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad ViewbillPage');
    this.srNo = [
      {no: '1'},
      {no: '2'},
      {no: '3'}
    ];

    this.particulars = [
      {particular: 'Particular 1'},
      {particular: 'Particular 2'},
      {particular: 'Particular 3'}
    ];

    this.particularAmt = [
      {amount: '100'},
      {amount: '500'},
      {amount: '1000'}
    ];
  }

  print(){
    if(this.platform.is('cordova')){
      if(this.printer.isAvailable())
      {
        let options: PrintOptions = {
          name: 'Bill Report',
          duplex: true,
          landscape: true,
          grayscale: true
        };
        var page = document.getElementById('billReport');
        this.printer.print(page, options);
      }
      else{
        this.alert('Please connect your device to a printer!');
      }
    }
    else{
      this.alert('You are on a web browser!');
    }
  }

  alert(message: string) {
    this.alertCtrl.create({
      title: 'Info!',
      subTitle: message,
      buttons: ['OK']
    }).present();
  }
}

每当我点击打印按钮时,都没有任何反应!

有没有人有插件的这种麻烦?我做错什么了吗 ?我应该安装其他东西来解决问题吗?有没有人有一个例子工作得很好?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您似乎错过了安装codrova插件的步骤:

ionic cordova plugin add de.appplant.cordova.plugin.printer

离子本机包是上述插件的包装器。检查文档here