当我点击其中一个按钮时隐藏所有通知
问题描述:
当单击推送通知时,推送通知警报会从通知栏中隐藏其okey,但当我只是通过单击通知打开应用程序时,推送通知自动清除,为什么?我在启动我的应用程序时没有重置徽章。 假设我的手机上有5个通知。如果我打开其中一个,所有其他通知消失。我只想点击一下就消失。是的,我知道这是iOS的默认属性,但我想显示通知,直到用户手动点击或清除它。我有这样当我点击其中一个按钮时隐藏所有通知
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
print("this calls")
print(userInfo)//json
let aps = userInfo["aps"] as! [String: AnyObject]
let new = userInfo["news"] as! [String: AnyObject]
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("navVC") as? navViewController
let state:UIApplicationState = application.applicationState
if (state == UIApplicationState.Inactive || state == UIApplicationState.Background) {
if let _ = aps["alert"] as? String,let newsId = new["news_id"] as? Int {
print(newsId)
NSUserDefaults.standardUserDefaults().setInteger(newsId, forKey: "K_Push_Id")
NSUserDefaults.standardUserDefaults().synchronize()
}
if let category_name = new["category_name"]{
print(category_name)
NSUserDefaults.standardUserDefaults().setObject(category_name, forKey: "category_name")
NSUserDefaults.standardUserDefaults().synchronize()
}
self.window?.rootViewController = vc
self.window?.makeKeyAndVisible()
NSNotificationCenter.defaultCenter().postNotificationName("pushNotificationIdentifier", object: nil)
}
}
答
我做过像这样的appdelegate
func applicationDidBecomeActive(application: UIApplication) {
application.applicationIconBadgeNumber = 0;
}
所以每次当我打开应用程序,然后它使applicationIconBadgeNumber
为零,如果applicationIconBadgeNumber
为零,其清晰的所有通知,从处理通知中心。
这不只是你的应用程序。任何应用程序将确保通知一旦你打开它就会消失。或者点击该应用程序的某个特定通知,因为该应用程序负责向您显示所有通知,而您是** IN **该应用程序。虽然有意义。 – Dershowitz123
但我想在通知中心显示通知,直到用户手动或清除它 –
用户必须在通知中心启用它们,否则他们将不会显示,即使您想要也是如此;) –