当应用程序关闭时,如何使用Ionic接收通知

6

我正在使用ionic2FCM

当应用程序正在运行时,我可以接收到通知。

我需要在应用程序运行或不运行时都能接收到通知。

我该怎么做?


请详细说明,您是如何发送通知的?以及您正在执行的代码。 - George
2个回答

0

如果您已经在应用程序打开时收到通知,我假设您已经有一个服务器发送它(如Firebase Cloud Functions)和一个已配置为在应用程序中接收的插件。

首先,如果问题出现在IOS上,请验证生成的项目(ionic cordova build之后)是否在XCode中启用了REMOTE PUSH NOTIFICATIONS。在Android中,默认情况下启用此功能。

另一个可能是您在有效载荷中发送的属性以及您使用的接收插件。要在插件cordova-plugin-firebase中显示通知,必须具有带有titlebodynotification属性,如下所示:

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

对于插件phonegap-plugin-push,规则类似。您必须具有notification属性。这完全取决于插件。


0

您可以使用One-Signal来解决您的需求:以下是如何在ionic-2中初始化的代码片段

通过终端安装OneSignal Cordova插件

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

重要提示:请按照Ionic Native网站的说明将提供程序导入到您的app.module.ts中,例如:

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();        
    })    
  }

注意:请替换以下内容:

OneSignal 的 appId

FCM 的 googleProjectId


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接