2017-06-21 40 views
6

我正在使用ionic2FCM使用離子關閉應用時收到通知

我收到應用程序運行時的通知。

我需要在應用程序運行或不運行時收到通知。

我該怎麼做?

+0

請詳細說明, 告訴我們您是如何發送通知的?和你正在執行的代碼。 – George

回答

0

你可以用它解決您的需要One-Signal:這裏是一些代碼如何在離子-2

通過終端

ionic cordova plugin add onesignal-cordova-plugin 
npm install --save @ionic-native/onesignal 

重要提示初始化安裝OneSignal科爾多瓦插件:請確保按照Ionic Native站點的指示將提供程序導入到app.module.ts中,例如

import {OneSignal} from '@ionic-native/onesignal'; 
@NgModule({ 
    ... 
    providers: [ 
    ... 
    OneSignal 
    ... 
    ] 

}) 
export class AppModule { } 

摘自:離子本地

現在init的OneSignal插件。從OneSignal

的appid:

然後,將下面的代碼添加到您的app.ts,以便它在啓動時運行,例如在initializeApp()方法中:

import {OneSignal} from '@ionic-native/onesignal'; 
import {Platform} from 'ionic-angular'; 

constructor(private _OneSignal: OneSignal, private _platform: Platform) { 
    startApp(); 
} 

    startApp() { 
    this._platform.ready().then(() => { 
     this._OneSignal.startInit(appId, googleProjectId); 
     this._OneSignal.inFocusDisplaying(this._OneSignal.OSInFocusDisplayOption.Notification); 
     this._OneSignal.setSubscription(true); 
     this._OneSignal.handleNotificationReceived().subscribe(() => { 
     // handle received here how you wish. 
     }); 
     this._OneSignal.handleNotificationOpened().subscribe(() => { 
     // handle opened here how you wish. 
     }); 
     this._OneSignal.endInit();   
    })  
    } 

注意:代替你

googleProjectId FCM

0

如果您在應用程序打開時已收到通知,則我假定您已經有一臺服務器將其發送到(與Firebase雲端函數一樣)以及您已配置爲在應用程序中接收的插件。

首先,案例的問題是IOS,驗證是否生成的項目(ionic cordova build後)有XCode中啓用了REMOTE PUSH NOTIFICATIONS。在Android中,這是默認啓用的。

可能是問題的另一件事是您在您的有效載荷中發送的屬性以及您用來接收它的插件。對於通知的插件cordova-plugin-firebase顯示它必須有一個notification財產與titlebody,像這樣:

{ "notification": { "title": 'a title', "body": 'some text' }, "data": { "anydata1": 'data1', "anydata2": 'data2', "etc": 'etc' } }

隨着插件phonegap-plugin-push的規則類似。您必須擁有notification屬性。這一切都取決於插件。

相關問題