【问题标题】:PushNotification in BackGround在后台推送通知
【发布时间】:2015-11-04 09:59:49
【问题描述】:

当应用程序处于后台模式并且用户单击通知时收到推送通知时调用此方法。但是我想在通知进入后台模式时调用一个方法,而无需用户点击通知。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
    NSLog(@"%@",userInfo);
}

【问题讨论】:

  • 如果您启用了通知的后台处理权限,并且 APN 字典包含具有非零值的 content-available 键,则应在收到 APN 后立即调用委托方法,甚至在用户看到要点击的横幅(或警报)之前。
  • this answer...

标签: ios objective-c apple-push-notifications ios9


【解决方案1】:

为此,您需要为远程通知启用后台模式。您可以在项目的 Capabilities 部分找到它。除此之外,您传入的通知有效负载应包含 content-available:1 键值对。 然后这个方法会立即被调用,无需用户交互。

注意:如果应用程序处于后台或挂起状态,这将有效。如果应用程序被用户完全杀死或强制退出,它将无法运行。

【讨论】:

  • 我已启用远程通知的后台模式,并且有效负载应包含 content-available:1 键值对但不调用我的后台方法
  • @priyankagautam 你确定你的 APN 包含 { aps = { "content-available" : 1, sound : "" }; } 以类似的方式
猜你喜欢
  • 1970-01-01
  • 2013-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-18
  • 2016-01-23
  • 2017-10-29
相关资源
最近更新 更多