Push notification 离子3中的推送通知错误

Push notification 离子3中的推送通知错误,push-notification,ionic2,ionic3,Push Notification,Ionic2,Ionic3,我正在尝试在我的Ionic 3应用程序中配置推送通知。我已经配置了我的离子云和Firebase。但我得到了一个错误,说: 无法在浏览器和设备中解析推送:(?,?)的所有参数 这是我的app.module.ts文件 import { BrowserModule } from '@angular/platform-browser'; import { HttpModule } from '@angular/http'; import { ErrorHandler, NgModule } from '

我正在尝试在我的Ionic 3应用程序中配置推送通知。我已经配置了我的离子云和Firebase。但我得到了一个错误,说:

无法在浏览器和设备中解析推送:(?,?)的所有参数

这是我的app.module.ts文件

import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';
import { CloudSettings, CloudModule } from '@ionic/cloud-angular';

import { MyApp } from './app.component';
import { HomePage } from '../pages/home/home';
import { PushPageModule } from '../pages/push/push.module';


const cloudSettings: CloudSettings = {
  'core': {
    'app_id': 'fe5f8133'
  },
  'push': {
    'sender_id': '77303616548',
    'pluginConfig': {
      'ios': {
        'badge': true,
        'sound': true
      },
      'android': {
        'iconColor': '#343434'
      }
    }
  }
};

@NgModule({
  declarations: [
    MyApp,
    HomePage
  ],
  imports: [
    BrowserModule,
    HttpModule,
    PushPageModule,
    CloudModule.forRoot(cloudSettings),
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    HomePage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}
这是我的app.component.ts

import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';

import { HomePage } from '../pages/home/home';

import {
  Push,
  PushToken
} from '@ionic/cloud-angular';

@Component({
  templateUrl: 'app.html',
  providers: [Push]
})
export class MyApp {
  rootPage:any = HomePage;
  logs;

  constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen, private push: Push) {
    platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      statusBar.styleDefault();
      splashScreen.hide();

      this.push.register().then((t: PushToken) => {
        return this.push.saveToken(t);
      }).then((t: PushToken) => {
        console.log('Token saved:', t.token);
        this.logs = 'Token saved:', t.token;
      });

      this.push.rx.notification()
      .subscribe((msg) => {
        console.log('I received awesome push: ' + msg);
        this.logs = 'I received awesome push: ' + msg;
      });

    });
  }
}
这是错误消息:


您不应在组件或AppModule中将
推送设置为提供程序。这将在
云角度
模块中设置

删除:

@Component({
  templateUrl: 'app.html',
  // providers: [Push] -> remove this
})
export class MyApp {
检查
离子云角度的代码

当您设置
CloudModule.forRoot(config)
时,他们已经将Push设置为provider。Push还需要两个参数
PushOptions
PushDependencies
,这两个参数在依赖项注入中缺失


工作很有魅力,你能不能详细解释一下为什么我不应该把push设置为提供者谢谢
@NgModule()
    export class CloudModule {
      static forRoot(settings: CloudSettings): ModuleWithProviders {
        return {
          ngModule: CloudModule,
          providers: [
            { provide: CloudSettingsToken, useValue: settings },
            { provide: DIContainer, useFactory: provideContainer, deps: [ CloudSettingsToken ] },
            { provide: Auth, useFactory: provideAuth, deps: [ DIContainer ] },
            { provide: Client, useFactory: provideClient, deps: [ DIContainer ] },
            { provide: Config, useFactory: provideConfig, deps: [ DIContainer ] },
            { provide: Deploy, useFactory: provideDeploy, deps: [ DIContainer ] },
            { provide: Push, useFactory: providePush, deps: [ DIContainer ] },
            { provide: User, useFactory: provideUser, deps: [ DIContainer ] },
            { provide: FacebookAuth, useFactory: provideFacebookAuth, deps: [ DIContainer ]},
            { provide: GoogleAuth, useFactory: provideGoogleAuth, deps: [ DIContainer ]}
          ]
        };
      }