电容器/ Ionic4:带有plugin_not_installed的BarcodeScanner

时间:2018-12-17 18:37:09

标签: angular ionic4 capacitor

我在将BarcodeScanner添加到我的Android版本时遇到问题,错误是 plugin_not_installed

该应用程序编译时没有任何错误,但在运行时输出错误。我也尝试过删除/添加android文件夹,但仍然没有运气。

有人知道是什么原因造成的吗?

安装:

npm install --save @ionic-native/barcode-scanner@5.0.0-beta.21

app.module.ts:

import { BarcodeScanner } from '@ionic-native/barcode-scanner/ngx';

@NgModule({
    ...

    providers: [
        ...
        BarcodeScanner
        ...
    ]
    ...
})

home.ts:

import { BarcodeScanner, BarcodeScannerOptions } from '@ionic-native/barcode-scanner/ngx';

@Component({
  ...
})
export class HomePage implements OnInit {
  private options: BarcodeScannerOptions;

  constructor(private barcodeScanner: BarcodeScanner) {}

  scan() {
    this.options = {
      prompt: "Scan your qrcode "
    }
    this.barcodeScanner.scan(this.options).then((barcodeData) => {
      ...
    }, err => {
      console.log("Error occured : " + err);
    });
  }//func scan

}//class HomePage

======

依赖项:

k

3 个答案:

答案 0 :(得分:3)

您刚刚为插件安装了离子原生包装器,但没有为插件安装

对于科尔多瓦

ionic cordova plugin add phonegap-plugin-barcodescanner

对于电容器

npm install phonegap-plugin-barcodescanner

答案 1 :(得分:0)

重要的是,如果您给出不带“ --save”的命令,有时package.json不会更新。例如,npm install phonegap-plugin-barcodescanner并未更新config.xml和package.json。出现“ Plugin_not_installed”错误时,这可能会浪费您很多时间。

请按照以下步骤操作,它应该可以在Android手机上无缝运行。

npm install @ionic-native/barcode-scanner --save
npm install phonegap-plugin-barcodescanner --save
npx cap sync

然后在android上运行

ionic capacitor run android. 

请注意,仅当您遇到错误的plugin_not_installed时,以上解决方案才会出现。

示例执行代码:

declare let window: any;

  scan(){
    window.cordova.plugins.barcodeScanner.scan(
      result => console.log(result),
      err => this.presentAlert(err),
      {
        showTorchButton: true,
        prompt: "Scan your code",
        formats: "QR_CODE",
        resultDisplayDuration: 0
      }
    );
  }

谢谢

答案 2 :(得分:0)

当我遇到这个问题时,我正在使用带电容器的实时重载。在这里尝试解决方案但没有成功后,我只需要重建应用程序(当然在终端上 ctrl + c 之后取消正在运行的应用程序):

 ionic cap run android -l --external

然后所有插件都成功运行。我不知道每次添加插件时是否都必须这样做,但现在可以使用