【问题标题】:cordova-plugin-printer @ionic-native/printer ERROR Error: Uncaught (in promise): NullInjectorErrorcordova-plugin-printer @ionic-native/printer 错误错误:未捕获(承诺):NullInjectorError
【发布时间】:2019-10-24 16:38:09
【问题描述】:

我需要使用 ionic 框架(v4)从 android 应用打印 html 内容。我在官方文档中找到了 cordova-plugin-printer,但我无法让它工作。 根据docs,您只需稍后安装插件和包装器即可。

ionic cordova plugin add cordova-plugin-printer
npm install @ionic-native/printer

然后当注入打印机对象我得到 NullInjector 错误

ERROR Error: Uncaught (in promise): NullInjectorError: StaticInjectorError(AppModule)[TabComprobantePage -> Printer]: 
  StaticInjectorError(Platform: core)[TabComprobantePage -> Printer]: 
    NullInjectorError: No provider for Printer!
NullInjectorError: StaticInjectorError(AppModule)[TabComprobantePage -> Printer]: 
  StaticInjectorError(Platform: core)[TabComprobantePage -> Printer]: 
    NullInjectorError: No provider for Printer!
    at NullInjector.push../node_modules/@angular/core/fesm5/core.js.NullInjector.get (core.js:725)
    at resolveToken (core.js:11917)
    at tryResolveToken (core.js:11861)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:11763)
    at resolveToken (core.js:11917)
    at tryResolveToken (core.js:11861)
    at StaticInjector.push../node_modules/@angular/core/fesm5/core.js.StaticInjector.get (core.js:11763)
    at resolveNgModuleDep (core.js:20233)
    at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:20904)
    at resolveNgModuleDep (core.js:20233)
    at resolvePromise (zone.js:852)
    at resolvePromise (zone.js:809)
    at zone.js:913
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
    at Object.onInvokeTask (core.js:26246)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:422)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:195)
    at drainMicroTaskQueue (zone.js:601)

我尝试将打印机添加到提供程序/导入中,但没有成功。有什么想法吗?

谢谢

【问题讨论】:

  • 或者可能需要在当前页面模块中声明打印机
  • 是的@SnowBases。我已经试过了,没有结果。还尝试在应用程序模块和当前组件的模块中添加打印机作为提供程序。谢谢回答

标签: cordova printing ionic4 ionic-native


【解决方案1】:

我现在尝试过,如果您将打印机插件添加到我的 App.Module.ts 作为提供程序,它可以正常工作。

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouteReuseStrategy } from '@angular/router';

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

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

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

【讨论】:

猜你喜欢
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 2019-07-28
  • 2022-12-19
  • 1970-01-01
  • 2021-03-03
  • 2021-02-01
  • 1970-01-01
相关资源
最近更新 更多