首页 > 解决方案 > Ionic 插件 BLE(和所有其他插件)不是函数错误 | Ionic4 和 Angular 7

问题描述

我需要帮助。所以我用 angular 项目创建了 ionic cordova 来制作应用程序。我已经在 Android 设备上启动了该应用程序并开始使用 Chrome DevTools 进行调试。

所以一切正常,但是,问题是:

我已经安装了这个 BLE 离子插件:

https://ionicframework.com/docs/native/ble#installation

插入这个:

ionic cordova plugin add cordova-plugin-ble-central
npm install @ionic-native/ble

在 app.module.ts 上添加了这个

import { BLE } from '@ionic-native/ble/ngx';

    @NgModule({
  declarations: [
    MyApp,
    AboutPage,
    ContactPage,
    HomePage,
    TabsPage
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    AboutPage,
    ContactPage,
    HomePage,
    TabsPage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    BLE <------- Add this BLE on providers
  ]
})

所以这是我的家.ts

    import { Component, OnInit } from '@angular/core';
import { NavController } from 'ionic-angular';
import { BLE } from '@ionic-native/ble/ngx';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage implements OnInit{

  constructor(
    public navCtrl: NavController,
    public ble: BLE
    ) {

  }

  ngOnInit() {
    this.ble.startScan([]).subscribe(device => {
      console.log(JSON.stringify(device));
      debugger;
    });

    setTimeout(() => {
      this.ble.stopScan();
    }, 5000);
  }

}

我已经通过终端启动了这个:

离子科尔多瓦运行android -l

当应用程序启动时,错误是:

错误错误:未捕获(承诺中):TypeError:Object(...)不是函数TypeError:Object(...)不是HomePage.webpackJsonp.251的BLE.startScan(vendor.js:81070)的函数.HomePage.ngOnInit (main.js:178) 在 checkAndUpdateDirectiveInline (vendor.js:13047) 在 checkAndUpdateNodeInline (vendor.js:14571) 在 checkAndUpdateNode (vendor.js:14514) 在 debugCheckAndUpdateNode (vendor.js:15407) 在 debugCheckDirectivesFn ( vendor.js:15348) 在 Object.eval [as updateDirectives] (ng:///AppModule/HomePage_Host.ngfactory.js:9) 在 Object.debugUpdateDirectives [as updateDirectives] (vendor.js:15333) 在 checkAndUpdateView (vendor. js:14480) 在 c (polyfills.js:3) 在 c (polyfills.js:3) 在 polyfills.js:3 在 t.invokeTask (polyfills.js:3) 在 Object.onInvokeTask (vendor.js:5387) 在 t.invokeTask (polyfills.js:3) 在 r.runTask (polyfills.js:3) 在 o (polyfills.js:3) defaultErrorLogger @ vendor.js:2085

什么我错了,或者我忘记了什么?这个问题发生在我使用的每个插件上。

标签: angularcordovaionic-frameworkionic4

解决方案


您必须在 startScan([],15) 中传递两个参数


推荐阅读