我正在开发基于本地通知的iPhone闹钟应用程序.
删除警报时,相关的本地通知应取消.但是,如何确定要取消本地通知数组中的哪个对象呢?
我知道[[UIApplication sharedApplication] cancelLocalNotification:notification]方法,但我怎么能得到这个'通知'取消它?
我想删除我的应用从iOS 5通知中心发出的旧通知.我可以这样做吗?如果是这样,怎么样?
我有一个服务器向我发送推送通知,让我们说我手机上有5个通知.如果我打开其中一个,其他所有通知都会消失.我只希望点击的一个消失.
这是我处理接收通知的方式:
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
if ( application.applicationState == UIApplicationState.Inactive || application.applicationState == UIApplicationState.Background )
{
// navigating user to a view controller
}
application.applicationIconBadgeNumber = 0
}
Run Code Online (Sandbox Code Playgroud) 一旦用户选择了其中一个推送通知,我想清除我的应用程序的所有推送通知.
我在这里看过其他线程,说它在iOS中是不可能的.但是我从app store下载了一个应用程序,它做了同样的事情.
我想在添加新通知时从NotificationCenter中删除所有以前的本地通知.但它在iOS9.0和更低版本中工作,但在iOS 10中它会触发多个本地通知.所以似乎cancelAllLocalNotifications没有清除通知.
代码在iOS10中成功编译.
UIApplication.shared.cancelAllLocalNotifications()
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我收到徽章编号设置为1的推送通知.当应用程序启动时,它应该将徽章数设置为0,所以我使用:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
Run Code Online (Sandbox Code Playgroud)
它可以工作,但它也会从通知中心删除所有通知.
有没有办法在不删除通知的情况下清除徽章?
可能重复:
iOS应用程序:如何清除通知?
有什么方法可以在我点击它并启动我的应用程序时从通知中心(iOS 5)中删除通知?非常感谢
[[UIApplication sharedApplication] cancelAllLocalNotifications];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];'
Run Code Online (Sandbox Code Playgroud)
我添加了上面的代码didfinishLaunchingWithOptions但是当用户在他的通知中心点击通知并进入我的应用程序时,通知不会被清除.
编辑:
我也尝试将其添加到我的代码中:
application:didReceiveRemoteNotification:如果您尝试从消息中心清除消息,则还需要递增然后递减方法中的徽章, 以便当用户通过按通知向您输入应用时,消息中心也将清除,即:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
Run Code Online (Sandbox Code Playgroud)
如下所述:iOS应用程序:如何清除通知?但通知仍然无法从通知中心清除