【问题标题】:How to handle push notifications with Cordova as they arrive and the app is closed如何在 Cordova 到达并且应用程序关闭时处理推送通知
【发布时间】:2015-04-07 10:43:55
【问题描述】:

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

【问题讨论】:

  • 请提及您正在使用的平台。

标签: cordova push-notification phonegap-plugins phonegap-pushplugin


【解决方案1】:

如果您要求的是 iOS,那么没有。您的应用无法在后台处理用户通知。如果用户点击通知横幅,您的应用将打开,您将收到带有通知有效负载的回调,该有效负载可以转发到 JavaScript。

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

【讨论】:

    【解决方案2】:

    使用官方PushPlugin

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

    【讨论】:

      【解决方案3】:

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

      didReceiveRemoteNotification方法中添加这个

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2013-04-19
          • 2020-08-30
          • 2018-11-14
          • 1970-01-01
          • 2015-05-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多