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 3 中点击 One Signal 推送通知时如何导航到特定页面?