Я использую ionic2
с FCM
.
Я получаю уведомление, когда приложение работает.
Мне нужно получать уведомления, когда приложение работает или нет.
Как я могу это сделать ?
Я использую ionic2
с FCM
.
Я получаю уведомление, когда приложение работает.
Мне нужно получать уведомления, когда приложение работает или нет.
Как я могу это сделать ?
Вы можете использовать One-Signal
, который решает вашу проблему: вот немного кода, как инициализировать в ionic-2
Установите плагин OneSignal Cordova через Терминал
ionic cordova plugin add onesignal-cordova-plugin
npm install --save @ionic-native/onesignal
Важное примечание: убедитесь, что вы импортировали провайдера в свой app.module.ts в соответствии с инструкциями на сайте Ionic Native, например.
import {OneSignal} from '@ionic-native/onesignal';
@NgModule({
...
providers: [
...
OneSignal
...
]
})
export class AppModule { }
Взято из: Ionic-native
Теперь запустите плагин OneSignal
.
Затем добавьте следующий код в свой 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();
})
}
Примечание: замените в своем:
appId от OneSignal
googleProjectId от FCM
Если вы уже получаете уведомление, когда приложение открыто, я предполагаю, что у вас уже есть сервер для его отправки (как в случае с облачными функциями Firebase) и плагин, который вы настроили для получения в своем приложении.
Во-первых, если проблема связана с IOS, проверьте, включен ли в сгенерированном проекте (после ionic cordova build
) REMOTE PUSH NOTIFICATIONS
в XCode. В Android это включено по умолчанию.
Другая вещь, которая может быть проблемой, — это свойства, которые вы отправляете в своей полезной нагрузке, И плагин, который вы используете для ее получения. Чтобы уведомление отображалось в плагине cordova-plugin-firebase
, оно должно иметь свойство notification
с title
или body
, например:
{
"notification": {
"title": 'a title',
"body": 'some text'
},
"data": {
"anydata1": 'data1',
"anydata2": 'data2',
"etc": 'etc'
}
}
С плагином phonegap-plugin-push
правила аналогичны. Вы должны иметь свойство notification
. Все зависит от плагина.