我正在开发一个包含大量遗留代码的大型应用程序.目前 - 有一个实现:
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
Run Code Online (Sandbox Code Playgroud)
问题是它仅在应用程序位于前台或用户在应用程序处于后台时点击通知时调用.我试图实现:
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
Run Code Online (Sandbox Code Playgroud)
但该应用程序的行为相同.在任何情况下 - 当应用程序在后台时,不会调用此方法.可能是什么问题呢?
如果您点击通知中心的通知,您会在代码中获得通知信息,但是如果用户不点击它,而只是点击主屏幕上的应用程序图标怎么办?
例如,因为通知负载还包含徽章属性。然后用户可以点击应用程序图标,因为有徽章数字在发光,但是在这种情况下如何管理代码中的等待通知?
如果没有这方面的方法,那么通知负载中的徽章属性就有点无用了,不是吗。因为如果用户点击带有徽章编号的图标,他预计会发生一些事情,但是应用程序无法对挂起的通知做任何事情,因此可以做任何事情。或者?