在用户点击它们之前在后台处理通知 - Swift 3
Posted
技术标签:
【中文标题】在用户点击它们之前在后台处理通知 - Swift 3【英文标题】:Handling notification in the background before user taps on them - Swift 3 【发布时间】:2017-06-10 16:16:14 【问题描述】:在 swift 3 中,如何在应用处于后台且用户点击通知之前处理本地通知?
UserNotificationController.userNotificationCenter(_:willPresent:withCompletionHandler:)
仅在用户点击通知时被调用。
我的目标是创建一个本地通知,显示类似于来电的屏幕,用户可以在其中滑动以接听或挂断电话。
谢谢!
【问题讨论】:
你试过'willPresent notification' UserNotificationdelegate 方法吗?! 这就是我的意思,当我说它只有在用户点击它时才会被调用。我已经更新了问题。 在此方法中,您必须在完成处理程序中返回通知存在选项。在此之前,通知不会向用户显示。您只需在返回通知显示选项之前完成您的工作。 你的意思是我应该在被覆盖的方法UserNotificationController.userNotificationCenter(_:willPresent:withCompletionHandler:)
中调用completionHandler()
吗?这不会解决我的问题,因为在用户点击通知横幅之前不会调用此方法。
你在用什么操作系统?!
【参考方案1】:
根据这个 SO question,这根本不可能:
ios Local Notification - Callback when in Background
引用该链接中给出的部分答案:
如果您的应用在后台或未运行,而用户这样做了 不要点击通知并召唤您的应用程序,您将一无所获 所有人都无法知道通知已触发。这是 因为通知不是为了您的利益,而是一种 向用户发送消息。 (听起来,从你的问题来看,好像 您可能误用本地通知作为发送消息的一种方式 对自己。这不是他们的目的。)
【讨论】:
以上是关于在用户点击它们之前在后台处理通知 - Swift 3的主要内容,如果未能解决你的问题,请参考以下文章