2017-07-05 10 views
0

Ionic 3アプリケーションでプッシュ通知を設定しようとしています。私はすでにIonic CloudとFirebaseを設定しています。しかし、次のようなエラーが表示されています。Ionic 3のプッシュ通知エラー

ブラウザとデバイスの両方で、プッシュのすべてのパラメータを解決できません:(?、?)

ここに私の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; 
     }); 

    }); 
    } 
} 

です:あなたは、あなたのコンポーネントまたはでプロバイダとしてPushを設定しないでください

enter image description here

答えて

0

AppModule。これはcloud-angularモジュールで設定されます。

削除:

@Component({ 
    templateUrl: 'app.html', 
    // providers: [Push] -> remove this 
}) 
export class MyApp { 

コードionic-cloud-angularhereを確認してください。

CloudModule.forRoot(config)を設定すると、既にプッシュプロバイダとして設定されています。また、プッシュには、依存性注入に欠けていた2つのパラメータPushOptionsPushDependenciesが必要です。

@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 ]} 
      ] 
     }; 
     } 
+0

が魅力のように働いていた、あなたは –

+0

としてのプッシュを設定してはならない理由について少し詳しく説明してくださいすることができ –

+0

はどうもありがとうございました..私は私の答えを更新しましたプロバイダ –

関連する問題