didReceiveRemoteNotification:当应用程序处于后台且不活动时,不会调用 fetchCompletionHandler

问题描述 投票:0回答:2

在应用程序活动状态下,会调用 didReceiveRemoteNotification 方法,而当应用程序处于后台和非活动状态时,不会调用 didReceiveRemoteNotification 方法。

代码:-

func application(_ application: UIApplication,  didReceiveRemoteNotification userInfo: [AnyHashable : Any],  fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void){
  
    NSLog("Push Received: \(userInfo)")
    completionHandler(UIBackgroundFetchResult.newData)
}
ios swift push-notification apple-push-notifications
2个回答
1
投票

如果你想调用以下方法

func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)

在后台模式下使用远程通知。您需要在 aps 有效负载中发送 content-available : 1 作为无声通知,然后只有它才会将您的应用程序从后台模式唤醒。如果您愿意,您可以使用相同的负载配置本地警报通知。


0
投票

如果这能让你平静下来,我也遇到了同样的问题,但我没有采取任何措施来解决这个问题,因为几个小时后,我的应用程序开始在后台收到通知。但如果没有帮助,您应该尝试使用 ARC 手动发送通知,并检查通知状态。

© www.soinside.com 2019 - 2024. All rights reserved.