如何向Ionic应用程序发送推送通知?

时间:2018-01-13 18:42:23

标签: android ios cordova notifications ionic3

我正在使用最新版本的Ionic 3创建移动应用程序。我正处于需要实现推送通知的位置。我正在使用FCM。我已经设法使用此插件为Android手机完成了它:https://github.com/phonegap/phonegap-plugin-push。阅读此插件的文档,它说对于Android我应该只发送数据消息,这是最好的做法。它还说发送通知和数据有效负载将无法正常工作:

  

当您的应用处于前台时,您已注册的任何('通知')处理程序将被调用。如果您的应用位于后台,则通知将显示在系统托盘中。单击系统托盘中的通知将启动应用程序,并且不会调用您的on('notification')处理程序,因为具有通知有效负载的消息不会导致调用插件onMessageReceived方法。

但对于IOS,我需要发送带有数据有效负载的通知消息。如果我直接定位设备,这不会是一个问题,但我需要发送主题消息。所以我看到的方式是在我的服务器上我需要实现这个逻辑:

假设主题的名称为FOOD-AND-DRINKS

function onSomeEvent($data) {
    // send push notification to topic ANDROID~FOOD-AND-DRIKS        
    // send push notification to topic IOS~FOOD-AND-DRINKS
}

此外,由于将来我的计划将包括多个城市,并非所有人都希望收听该人所居住的城市的通知,因此我的主题将是PLATFORM~CITY~CATEGORY

所以我的问题是,有没有更好的插件来处理通知,或者我的服务器和谷歌FCM之间的某些服务,该服务会处理这个,或者这是我提出的相当不错?

1 个答案:

答案 0 :(得分:0)

您可以使用云功能发送通知,因为您还使用FCM

有关此内容的更多信息:https://firebase.google.com/docs/functions/

  

Firebase的云端功能可让您自动运行后端代码,以响应Firebase功能和HTTPS请求触发的事件。您的代码存储在Google的云中,并在托管环境中运行。无需管理和扩展自己的服务器。

使用云功能,您可以使用onWrite()之类的数据库触发器,如果​​您有数据有效负载和/或通知,它将能够发送通知。

但是如果你单独使用数据负载,那么你也可以发送android设备也在后台。

关于主题:

如果您的应用程序中有多个城市,则可以让用户注册每个主题。你可以在数据库中这样做:

 city-category
          id_here
               cityname: nameX
               //other details
           id_here1
               cityname: nameY
               //other details