Ioni c пустой экран от импорта плагинов - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь создать приложение подготовки BLE, используя Ioni c и плагин BluetoothLE. Но, когда я импортирую плагин, он дает мне пустой экран. Я обновился до ioni c 5 и все обновлено. Я пытаюсь собрать его через режим отладки usb на android studio. И он работает нормально, пока я не добавлю оператор импорта.

Я импортирую его так, как это есть в документации import { BluetoothLE } from '@ionic-native/bluetooth-le/ngx';

Плагин установлен правильно и распознается как что-то для импорта , Но по какой-то причине оно просто блокирует приложение.

вот блокировка пакета. json:

"@ionic-native/bluetooth-le": {
      "version": "5.22.0",
      "resolved": "https://registry.npmjs.org/@ionic-native/bluetooth-le/-/bluetooth-le-5.22.0.tgz",
      "integrity": "sha512-evqUuWzhVZZO7znOQvShCYHP8HdElGwnxpWUCYhSGp0YsoacYJUIB7U4LN0Y7azTn3wgMRWT4m7M49Z42ErMXw==",
      "requires": {
        "@types/cordova": "^0.0.34"
      }

также, вот плагин https://ionicframework.com/docs/native/bluetooth-le

при запуске его в браузере с ioni c служить, я получаю эту ошибку в консоли

  StaticInjectorError(Platform: core)[HomePage -> BluetoothLE]: 
    NullInjectorError: No provider for BluetoothLE!
NullInjectorError: StaticInjectorError(AppModule)[HomePage -> BluetoothLE]: 
  StaticInjectorError(Platform: core)[HomePage -> BluetoothLE]: 
    NullInjectorError: No provider for BluetoothLE!
    at NullInjector.get (core.js:855)
    at resolveToken (core.js:17514)
    at tryResolveToken (core.js:17440)
    at StaticInjector.get (core.js:17266)
    at resolveToken (core.js:17514)
    at tryResolveToken (core.js:17440)
    at StaticInjector.get (core.js:17266)
    at resolveNgModuleDep (core.js:30393)
    at NgModuleRef_.get (core.js:31578)
    at resolveNgModuleDep (core.js:30393)
    at resolvePromise (zone-evergreen.js:797)
    at resolvePromise (zone-evergreen.js:754)
    at zone-evergreen.js:858
    at ZoneDelegate.invokeTask (zone-evergreen.js:391)
    at Object.onInvokeTask (core.js:39680)
    at ZoneDelegate.invokeTask (zone-evergreen.js:390)
    at Zone.runTask (zone-evergreen.js:168)
    at drainMicroTaskQueue (zone-evergreen.js:559)```

1 Ответ

0 голосов
/ 06 марта 2020

Это нигде не задокументировано, что я мог найти. И, возможно, это потому, что я новичок в Ioni c, и это общеизвестно (мне кажется, что подобное в программном обеспечении никогда не следует считать общеизвестным), но при использовании плагина необходимо импортировать плагин в app.module .ts и добавьте его под провайдерами, например:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';
import { BluetoothLE } from '@ionic-native/bluetooth-le/ngx';

import { IonicModule, IonicRouteStrategy } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';

@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
  providers: [
    StatusBar,
    SplashScreen,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
    BluetoothLE
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}
...