从通知中心删除单个远程通知
我的应用程序从Apple服务器接收远程通知。
当用户点击它时,是否有办法从通知中心(iOs 5.0+的下拉菜单)中删除单个远程通知?
谢谢!
从iOS SDK 5.0开始,无法删除特定的通知。 当用户从其中一个应用程序打开应用程序时,从应用程序中删除所有通知 ,以便它们不会显示在通知中心的方法是将应用程序标记设置为0,如下所示:
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
编辑:在iOS 8上,SpringBoard似乎会自动closures通知,当你点击通知中心打开应用程序。
这里有一个build议,虽然它有缺点,我自己也没有尝试过:
- 推送无声通知(contentAvailable:true),不要在推送中包含“警报”,将警报文本置于推送的自定义属性中
- 处理传入的推送并触发本地通知,立即显示
- 如果用户点击本地通知,则使用[UIApplication cancelLocalNotification:]应该从通知中心删除通知。
当你调用方法: [application cancelAllLocalNotifications];
在AppDelegate方法里面:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
和
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo