2016-06-14 29 views
0

当单击推送通知时,推送通知警报会从通知栏中隐藏其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) 
    } 
    } 
+2

这不只是你的应用程序。任何应用程序将确保通知一旦你打开它就会消失。或者点击该应用程序的某个特定通知,因为该应用程序负责向您显示所有通知,而您是** IN **该应用程序。虽然有意义。 – Dershowitz123

+0

但我想在通知中心显示通知,直到用户手动或清除它 –

+0

用户必须在通知中心启用它们,否则他们将不会显示,即使您想要也是如此;) –

回答

0

我做过像这样的appdelegate

func applicationDidBecomeActive(application: UIApplication) { 
     application.applicationIconBadgeNumber = 0; 
    } 

所以每次当我打开应用程序,然后它使applicationIconBadgeNumber为零,如果applicationIconBadgeNumber为零,其清晰的所有通知,从处理通知中心。

相关问题