получать уведомление, когда приложение закрывается с помощью ionic

Я использую ionic2 с FCM.

Я получаю уведомление, когда приложение работает.

Мне нужно получать уведомления, когда приложение работает или нет.

Как я могу это сделать ?


person ANISUNDAR    schedule 21.06.2017    source источник
comment
пожалуйста, подробнее, расскажите, как вы отправляете уведомление? и код, который вы выполняете.   -  person George    schedule 08.09.2017


Ответы (2)


Вы можете использовать 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

person The Blue Shirt Developer    schedule 12.09.2017

Если вы уже получаете уведомление, когда приложение открыто, я предполагаю, что у вас уже есть сервер для его отправки (как в случае с облачными функциями 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. Все зависит от плагина.

person Bruno Eduardo    schedule 14.09.2017