【问题标题】:iPhone: how to remove badge after Push Notification?iPhone:推送通知后如何删除徽章?
【发布时间】:2009-11-26 12:13:18
【问题描述】:

删除我的应用图标上的徽章的代码是什么?当我收到推送时,我需要在单击按钮时将其删除!

【问题讨论】:

    标签: iphone objective-c xcode push


    【解决方案1】:

    objC

    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
    

    迅速

    UIApplication.sharedApplication().applicationIconBadgeNumber = 0;
    

    【讨论】:

    • 如果您使用 Parse.com 之类的 API(我曾经使用过),您可能还必须将远程数据库更新为“0”。否则在本地设置它会隐藏徽章,但在下一次推送时,徽章不会显示 0,而是显示旧值 +1。就像这些人看到了stackoverflow.com/questions/13757285/…
    【解决方案2】:

    您可以通过在代码中添加以下行来从推送通知中删除徽章

    (void)applicationDidBecomeActive:(UIApplication *)application
    {
        [[UIApplication sharedApplication] cancelAllLocalNotifications];
        [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
    }
    

    【讨论】:

      【解决方案3】:

      对于iOS5,仅设置徽章编号不会删除通知中心的那些推送通知。你必须这样做......

      [[UIApplication sharedApplication] cancelAllLocalNotifications];
      [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
      

      我已经对此进行了测试。看起来cancelAllLocalNotifications 方法也适用于通知中心的推送通知。

      【讨论】:

      • 当心:cancelAllLocalNotifications。问题是从 PUSH 通知中删除徽章,但这个会删除所有本地通知(应用程序是否已安排任何通知)。
      • 是的,我知道这一点。但是根据 stackoverflow.com/questions/9925854/… ,您不能有选择地删除一个特定的通知。您只能删除所有。您也应该在 Felixyz 的回答中发表评论,因为使用 applicationIconBadgeNumber=0 也会删除所有推送+本地通知,对吧?
      【解决方案4】:

      斯威夫特 3

      UIApplication.shared.applicationIconBadgeNumber = 0
      

      可以添加到以下方法中:

      optional public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool
      

      optional public func applicationDidBecomeActive(_ application: UIApplication)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-24
        • 2012-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多