Ionic 2:处理点击推送通知

Posted

技术标签:

【中文标题】Ionic 2:处理点击推送通知【英文标题】:Ionic 2:Handling click on push notification 【发布时间】:2017-06-13 09:36:02 【问题描述】:

我正在使用 ionic push plugin 来处理从 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));

如果应用没有打开,我会在顶部收到通知,如果打开,我会直接收到警报(subscribe((notification: any) 里面的代码被执行)。现在的问题是,

    如果应用程序未打开,点击通知时,我必须能够触发某些功能,以便提取有效负载数据并执行某些操作。 即使打开应用程序,通知也应该出现在顶部,点击它我必须能够触发某些功能。

【问题讨论】:

【参考方案1】:

我终于找到了解决方案。之前我在服务器端使用Cordova-plugin-firebase,在客户端使用PhoneGap-plugin-push。使用这种组合的主要原因是对于任意数量的通知都是免费的。但是在 PhoneGap-plugin-push 中我遇到了很多问题,尽管作者在 GitHub 上回答了这些问题,但并没有立即解决。所以最后我把我的应用程序移到了One-Signal。易于集成,最佳支持,完全免费且非常重要,通知非常可靠。以下是使用单信号区域的说明。

    按照以下官方链接中的说明设置单信号服务器端: https://documentation.onesignal.com/docs/ionic-sdk-setup 使用以下命令将 one-signal 插件安装到 ionic 应用程序。

ionic cordova 插件添加一个signal-cordova-plugin

npm install --save @ionic-native/onesignal
    然后从 '@ionic-native/onesignal' 导入 OneSignal ;在 app.module.ts 中并在 provider 中注册 OneSignal。 在app.componet.ts的构造函数中创建一个函数或添加以下代码

this.oneSignal.startInit('YOUR_APPID', 'YOUR_GOOGLE_PROJECT_NUMBER_IF_android');

this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.InAppAlert);

this.oneSignal.handleNotificationReceived().subscribe(() => 
 // do something when notification is received
);

this.oneSignal.handleNotificationOpened().subscribe(() => 
  // do something when a notification is opened
);

this.oneSignal.endInit();
    您将从 One-signal 仪表板获得的应用程序 ID。
      甚至您也会在此处获得获取 Google-project-id 的说明(仅当您使用 Android 时才需要它)。

因此,如果有人正在寻找替代 fire base + phone gap push 插件,那么One-Signal 将是您的最佳选择。

【讨论】:

以上是关于Ionic 2:处理点击推送通知的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 2:点击推送通知

点击推送通知后打开页面 Ionic 2 iOS

在 ionic 3 中点击 One Signal 推送通知时如何导航到特定页面?

在接收推送通知时获取数据 - ionic3

打开应用程序并锁定屏幕时未收到 Ionic FCM 推送通知,除非被点击

如何清除 Ionic Push 的推送通知?