2016-06-14 72 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爲零,其清晰的所有通知,從處理通知中心。

相關問題