Cordova 离子2:处理点击推送通知

Cordova 离子2:处理点击推送通知,cordova,push-notification,ionic2,Cordova,Push Notification,Ionic2,我正在使用ionic处理从google FCM发送的推送通知。下面是我用来注册和接收通知的代码 pushObject.on('notification').subscribe((notification: any) => console.log('Received a notification', notification)); pushObject.on('registration').subscribe((registration: any) => console.log('D

我正在使用ionic处理从google FCM发送的推送通知。下面是我用来注册和接收通知的代码

pushObject.on('notification').subscribe((notification: any) => console.log('Received a notification', notification));

pushObject.on('registration').subscribe((registration: any) => console.log('Device registered', registration));

pushObject.on('error').subscribe(error => console.error('Error with Push plugin', error));
如果应用程序未打开,我将在顶部收到通知,如果打开,我将直接收到警报(订阅中的代码((通知:any))将被执行)。现在的问题是

  • 若应用程序并没有打开,在点击通知时,我必须能够触发一些功能,以便提取有效负载数据并执行一些操作
  • 即使当应用程序被打开时,通知应该出现在顶部,点击它,我必须能够触发一些功能

  • 我终于找到了解决方案。早些时候,我在服务器端和客户端使用。使用这种组合的主要原因是两者都可以免费接收任意数量的通知。但在PhoneGap插件推送中,我遇到了许多问题,尽管作者在GitHub中回答了问题,但这并不是即时的。因此,最后我将我的应用程序移动到。易于集成,最佳支持,完全免费,非常重要。通知非常可靠。下面是使用单信号区的说明

  • 按照以下官方链接中的说明设置单信号服务器端:
  • 使用以下命令将one signal插件安装到ionic应用程序
  • ionic cordova插件添加onesignal cordova插件

  • 然后从app.module.ts中的“@ionic native/OneSignal”导入{OneSignal},并在provider中注册OneSignal
  • 在app.componet.ts的构造函数中创建函数或添加以下代码
  • this.oneSignal.startInit('YOUR_APPID'), “你的谷歌项目号(如果是安卓的话)”

    this.oneSignal.inFocusDisplaying(this.oneSignal.osinFocusDisplayeption.InAppAlert)

  • 您将从一个信号仪表板获取应用程序id。
  • 甚至你也会在那里得到获取谷歌项目id的说明(只有当你使用Android时才需要它)

  • 因此,如果有人在寻找fire base+phone gap推送插件的替代品,那么这将是您的最佳选择。

    我终于找到了解决方案。之前我在服务器端和客户端使用了此组合。使用此组合的主要原因是两者都可以免费接收任何数量的通知。但是在phone gap pl中ugin push我面临许多问题,尽管作者在GitHub中回答了问题,但这并不是即时的。因此,我最终将我的应用程序移动到了。易于集成、最佳支持、完全免费且非常重要的通知非常可靠。下面是使用单信号的说明

  • 按照以下官方链接中的说明设置单信号服务器端:
  • 使用以下命令将one signal插件安装到ionic应用程序
  • ionic cordova插件添加onesignal cordova插件

  • 然后从app.module.ts中的“@ionic native/OneSignal”导入{OneSignal},并在provider中注册OneSignal
  • 在app.componet.ts的构造函数中创建函数或添加以下代码
  • this.oneSignal.startInit('YOUR_APPID'), “你的谷歌项目号(如果是安卓的话)”

    this.oneSignal.inFocusDisplaying(this.oneSignal.osinFocusDisplayeption.InAppAlert)

  • 您将从一个信号仪表板获取应用程序id。
  • 甚至你也会在那里得到获取谷歌项目id的说明(只有当你使用Android时才需要它)
  • 因此,如果有人在寻找fire base+phone gap push插件的替代品,那么这将是您的最佳选择

    npm install --save @ionic-native/onesignal
    
    this.oneSignal.handleNotificationReceived().subscribe(() => {
     // do something when notification is received
    });
    
    this.oneSignal.handleNotificationOpened().subscribe(() => {
      // do something when a notification is opened
    });
    
    this.oneSignal.endInit();