选择通知操作时不会调用 userNotificationCenter(_:didReceive:withCompletionHandler:)
Posted
技术标签:
【中文标题】选择通知操作时不会调用 userNotificationCenter(_:didReceive:withCompletionHandler:)【英文标题】:userNotificationCenter(_:didReceive:withCompletionHandler:) not be called when a notification action is selected 【发布时间】:2018-02-14 23:16:52 【问题描述】:我正在尝试使可操作的通知正常工作,并且我已经获得了在通知展开时要显示的操作,但是当我选择一个操作时我无法调用委托函数。 I am declaring self.notificationCenter.delegate = self
in application(_:didFinishLaunchingWithOptions:)
, and, if I'm understanding correctly, when an action is selected it should call userNotificationCenter(_:didReceive:withCompletionHandler:)
, passing in the UNNotificationResponse
object.但是该方法永远不会在我的代码中被触发。任何想法为什么会发生这种情况?
【问题讨论】:
你创建了一个动作吗?如果是这样,您将需要首先检查操作标识符。检查this一个 @Mannopson 这最终不是问题,但我会调查一下,看看它是否仍然需要处理。谢谢。 【参考方案1】:你上面提到的方法一收到通知就会被调用。
点击通知动作后执行的方法是, 应用程序:handleActionWithIdentifier:forRemoteNotification:completionHandler:
【讨论】:
该方法已被弃用。根据 Apple 编程指南,userNotificationCenter(_:didReceive:withCompletionHandler:)
是选择操作时调用的委托方法。
我贴的方法是新的。您可以查看此链接“developer.apple.com/documentation/uikit/uiapplicationdelegate/…”【参考方案2】:
我发现了这个问题。要处理带有内容的通知,您必须在项目中添加服务扩展作为新目标。我运行的最后一件事是服务扩展,因此调试器不会在主应用程序的断点处停止。我不知道服务扩展本质上被视为完全独立的应用程序。由于我仍在处理该方法的内容,因此其中的内容无法正常工作并且会遇到断点,因此我认为它没有像应有的那样调用该函数。
【讨论】:
以上是关于选择通知操作时不会调用 userNotificationCenter(_:didReceive:withCompletionHandler:)的主要内容,如果未能解决你的问题,请参考以下文章
手机操作系统中显示的 Bluemix 推送通知在单击时不会启动应用程序
当应用程序在 iOS 10 的前台时,不会调用“willPresent 通知”并且本地通知不会显示