使用swift后台获取本地通知
Posted
技术标签:
【中文标题】使用swift后台获取本地通知【英文标题】:Background fetch local notification using swift 【发布时间】:2016-07-27 13:07:28 【问题描述】:在我的应用程序中,我想在应用程序处于后台或被终止时读取本地通知,并且我想取消该通知,因为它是重复的。
我正在使用下面的代码来安排本地通知,
let localNotification = UILocalNotification()
localNotification.fireDate = NSDate()
localNotification.repeatInterval = NSCalendarUnit.Day
localNotification.timeZone = NSTimeZone.localTimeZone()
localNotification.alertBody = "Hello"
localNotification.userInfo = userInfo
UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
两天后,我想取消该通知。所以,我想获取数据并检查它以取消它。不可能使用content-available=1
进行本地通知,而且我不希望用户与通知进行交互。
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification)
是否有可能在后台获取本地通知?
【问题讨论】:
这个问题与本地通知无关(因为它们可以使用 cancelLocalNotification 取消),而是在后台运行。过去有很多关于后台运行的问题你可以看看。简短的回答,不,这是不可能的,除非您的应用能够出于其他正当理由在后台运行 【参考方案1】:即使您的设备重新启动本地通知将在通知托盘中,它不会删除。当用户点击通知并且didReceiveLocalNotification
将接到电话时,只有它才能被控制以删除或执行进一步的任务。
只有通过推送工具包通知才能做到这一点,它会远程调用。
当它出现时,它将在后台调用您的应用 30 秒,然后您将获得控制权以访问它以删除或执行任何其他操作。
确保如果设备重新启动,您必须将其保留在 NSUserDefault 中,除非您无法访问该对象。
【讨论】:
以上是关于使用swift后台获取本地通知的主要内容,如果未能解决你的问题,请参考以下文章