我的应用程序每天向所有4小时后无关的所有用户播放推送通知(PN).有没有什么办法可以删除那个通知在每个用户的通知中心没有在4小时内轻拍它?
我以前认为这是不可能的,但在看到Google的环聊应用程序行为之后变得有希望 – 它将PN发送到Mac& iOS …如果我在Mac上阅读消息,它会自动将其从iOS的通知中心删除.
解决方法
诀窍是使您的应用程序支持后台抓取并处理推送通知,当您的应用程序是在后台.
然后在application:didReceiveRemoteNotification:fetchCompletionHandler:
将应用徽章设置为0,以便您从通知中心删除所有推送通知.
发送特殊的推送通知,其中没有显示给用户的数据,但是包含重置推送通知状态的命令.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { if([[userInfo objectForKey:@"reset"] boolValue]){ [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0]; } }