【问题标题】:How to listen for notification dismissed event in iOS?如何在 iOS 中侦听通知关闭事件?
【发布时间】:2015-05-10 16:02:59
【问题描述】:

我正在监听为本地通知按下的操作,但有没有办法确定用户何时关闭通知?

这是我在 AppDelegate 中收听我的操作的方式,但关闭不会触发此操作:

func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, completionHandler: () -> Void) {
        var actionName: String? = nil

        if let identifier = identifier {
            switch identifier {
                case "snoozeAction":
                    actionName = "snoozeActionTapped"
                    break
                default: break
            }

            if let name = actionName {
                NSNotificationCenter.defaultCenter().postNotificationName(name, object: nil)
            }
        }

        completionHandler()
    }

【问题讨论】:

  • 你搞清楚了吗?我也有类似的问题。
  • 不,我没有,我放弃并通过破解轮询方法来解决它。我刚刚开始赏金,也许可以恢复它。
  • 为什么要这样做? Apple 故意让这变得困难(不可能?),因为用户已明确表示他们不想与您的通知进行交互。
  • 在他们没有互动时安排通知,然后在他们与应用互动时取消安排(取消)
  • 答案是 iOS 10 中的UNNotificationDismissActionIdentifier

标签: ios ios8 apple-push-notifications uilocalnotification


【解决方案1】:

关闭通知不会唤醒您的应用程序,因此无法捕捉到这一点。

【讨论】:

  • 嗯,在 iOS 14 之前都是这样(至少)。因为现在它正在执行app的第一个ViewControllerviewDidLoad和`viewDidAppear`方法
【解决方案2】:

你应该试试这个:

 func application(application: UIApplication!,
            handleActionWithIdentifier identifier:String!,
            forLocalNotification notification:UILocalNotification!,
            completionHandler: (() -> Void)!){

                if (identifier == "FIRST_ACTION"){

                    NSNotificationCenter.defaultCenter().postNotificationName("actionOnePressed", object: nil)

                }else if (identifier == "SECOND_ACTION"){
                    NSNotificationCenter.defaultCenter().postNotificationName("actionTwoPressed", object: nil)

                }

                completionHandler()

        }

【讨论】:

    猜你喜欢
    • 2010-11-23
    • 2012-02-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多