是否可以理解 swift 3 中何时发出通知?

Posted

技术标签:

【中文标题】是否可以理解 swift 3 中何时发出通知?【英文标题】:Is it possible to understand when a notification raised in swift 3? 【发布时间】:2017-09-06 08:27:52 【问题描述】:

我知道如何发出本地通知并在其上显示操作。当用户点击操作时,我可以通过以下方法处理它:

func userNotificationCenter(_ center: UNUserNotificationCenter, 
 didReceive response: UNNotificationResponse, withCompletionHandler 
 completionHandler: @escaping () -> Void) 
   // Do something here
    if response.notification.request.content.userInfo["backUp"] 
     doBackUpHere()
     // Do other methods
    

但是,我的情况有点不同。当在单击它或它的操作(应用程序是前台或后台)之前发出通知时,我需要执行一些功能。其他方法在用户点击通知时运行

func notificationRaised (notification: Notification)
  // to do if notification is 
  if notification.userInfo["backUp"] 
    doBackUpHere()
  

更新

请查看@Sergey 的回答和我们的 cmets 以更好地理解我的建议。

【问题讨论】:

【参考方案1】:

如果我正确理解您的问题,您希望在通知到达时采取行动,而无需任何用户输入。如果是这样,我建议您查看 silent push notifications in ios - 不幸的是,他们就是这样做的 - 根本没有显示在用户界面中。

您也可以在计时器上尝试本地通知,但请记住,您只能在用户点击通知和/或其操作之一时运行代码,因为不能保证应用在预定时间之前处于活动状态显示本地通知。

【讨论】:

是的,您正确理解了我的问题。 Apple documentation 表示它仅用于服务器通知。我需要本地通知。我必须打开不是我目标的推送通知。 @AmirShabani 明白了。所以基本上你不能在这里做任何事情,因为当你实际发送通知时,你永远不会知道你的应用是否还活着。 您的意思是无法理解何时发出通知?它可以帮助我知道何时发出通知。像android中的广播接收器 @AmirShabani 这是一个快速的线索。如果它是本地通知,那么您是自己安排的,因此 - 您总是知道何时安排了它,您拥有这些数据,并且可以将其保存到本地应用程序中。另一件事是 - 当通知出现时,您的应用程序可能在此时不活动,因此如果您无法实际执行任何代码,则此信息无用。【参考方案2】:

您是否听说过“静默推送通知”?我认为这正是您要查找的内容;) 您可以获取该通知,执行您的操作,然后根据需要显示本地通知。

【讨论】:

非常感谢。但是,我发现使用静默推送通知我需要使用推送通知,这不是我的目标。你有无声推送通知的好资源吗?

以上是关于是否可以理解 swift 3 中何时发出通知?的主要内容,如果未能解决你的问题,请参考以下文章

何时对 PayPal 订阅采取行动?

基于 UUID 监控 iBeacon 区域时,何时收到通知?

4G LTE 网只能提供数据服务,不能承载语音通话,该怎么理解?

Swift 3 本地通知未触发

如何将 Apple 的通知声音用于用户通知 Swift

如何理解阻塞和非阻塞同步和异步