如何在 Cordova 到达和应用程序关闭时处理推送通知

How to handle push notifications with Cordova as they arrive and the app is closed

我能否以某种方式检测推送通知到达并在通知到达且应用程序关闭时使用 cordova 处理它?我正在使用 cordova com.clone.phonegap.plugins.pushplugin 但是当通知到达并且应用程序关闭时,我使用插件 javascript 代码注册的事件侦听器不是 'alive' 并且我无法检测到到达。是否可以使用 cordova 以其他方式实现?

如果您要求 iOS,则不会。您的应用无法在后台处理用户通知。如果用户点击通知横幅,您的应用程序将打开,您将收到一个回调,其中包含可以转发到 JavaScript.

的通知负载

如果您想处理静默后台通知,则必须在本机中完成,因为 JavaScript 执行在后台 AFAIK 中暂停。您可以实现一个只存储后台通知的队列,然后在应用程序 returns 进入活动状态时将其分派给 JavaScript。

我不确定这个解决方案,但你试过这个吗:-

didReceiveRemoteNotification方法中添加这个

NSString* jsString = [NSString stringWithFormat:@"localStorage.NotificationId=%@;", dynamicNotificationId];
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString];

使用官方PushPlugin.

Android中,如果应用程序关闭,将在状态栏中创建通知,否则有效负载将传递给您的应用程序

您可以在关闭应用程序时触发 on("notification") 事件,使用插件 phonegap-plugin-push > 1.6.2,并将您的后端响应更改为:

{
   notification : {
      title : 'yourTitle',
      message : 'yourMessage'
   }
}

{
   data : {
      title : 'yourTitle',
      message : 'yourMessage',
      content-available : "1" //only for IOS

   }
}