Swift - 在后台在应用程序中接收本地通知时执行功能

Posted

技术标签:

【中文标题】Swift - 在后台在应用程序中接收本地通知时执行功能【英文标题】:Swift - Execute function when receive Local Notification in app in background 【发布时间】:2019-06-06 04:54:31 【问题描述】:

我正在创建一个应用程序,用户在某个时间间隔内安排一些任务,应用程序会发送本地通知以提醒用户。

我正在使用UNUserNotificationCenter 来安排通知,一切正常,但每次收到通知时,我都需要执行一个将通知数据保存在数据库中的函数。

如果我仅在用户点击通知时使用userNotificationCenter (_: didReceive: withCompletionHandler :) 功能。

如果我使用userNotificationCenter (_: willPresent: withCompletionHandler :) 函数,我只能在应用程序运行时运行。

使用上面的这两个选项,当通知在后台应用程序到达并且用户没有点击时,我无法保存到数据库中。有谁知道我可以称之为这种情况的任何其他功能?或在收到通知时执行功能的一种方式。

【问题讨论】:

【参考方案1】:

你不能 :( UserNotification 是为了向用户显示一些信息,而不是在应用程序中安排任务。希望这会在 ios 13 中改变 - 正如 Apple 所说: “iOS 13 向平台添加了一个新的后台任务 API,它允许应用程序安排活动在后台运行,而无需强制用户打开应用程序并让它在前台运行。”

【讨论】:

以上是关于Swift - 在后台在应用程序中接收本地通知时执行功能的主要内容,如果未能解决你的问题,请参考以下文章

使用swift后台获取本地通知

应用程序在后台运行时发送本地通知 Swift 2.0

如何在 iOS 后台运行服务以接收本地通知?

后台运行的应用程序发送本地通知

在用户点击它们之前在后台处理通知 - Swift 3

应用程序在后台时的远程推送通知 swift 3