iOS:以编程方式取消显示在锁定屏幕上的通知?

iOS: Programmatically dismiss a notification that is displayed on lock screen?

想象一下:用户在他们的锁定屏幕上看到一条通知,例如"your server is online"。然后有些事情发生了变化,例如服务器离线。即使通知已显示在锁定屏幕上,我能否以编程方式从后台删除(关闭它)?

是的,您实际上可以这样做,您通常会在信使应用程序或社交网络应用程序中看到它在运行,例如,在某些具有网络版本的信使应用程序中,如果您收到一条消息并从web 但您已经在您的 iOS 应用程序上收到推送,当发生这种情况时,您必须发送另一个推送而不显示消息,但一个标签的值可以指示您想要的任何内容:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

  if([[userInfo objectForKey:@"reset"] boolValue]){
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
  }

}

这是一个