2017-08-15 41 views
0

我正在使用Swift 3为iOS 10开发应用程序。我希望让应用程序在后台以静默方式从远程服务器获取数据并发送新数据可用时将通知推送给用户。我知道一个远程通知可能是更好的方式来处理这个问题,但是有没有一种方法可以在本地实现?我知道我可以在特定时间或用户进入特定位置时推送通知,但有没有办法以编程方式触发通知?在iOS 10中满足特定条件时触发本地通知(Swift 3)

+0

你有没有看着'Timer'类? – Malik

+0

@Malik我知道如何用计时器触发通知。事情是我只想在服务器上有新的数据可用时触发它们,而不是在特定的时间。 – antande

+0

您在您的问题中声明,您希望“稍后在后台无提示地从远程服务器获取数据”。你如何定义'偶尔一次'? – Malik

回答

0

当数据到达时,您可以发送“UILocalNotification”通知。 (推送通知涉及到服务器,证书...等等..)

我建议:

a)使用performFetchWithCompletionHandler

为每个ADC:

“当一个好机会出现,系统会将您的应用程序唤醒或启动到后台并调用应用程序委托的应用程序:performFetchWithCompletionHandler:method。使用该方法检查新内容并在内容可用时启动下载操作。 b)在performFetchWithCompletionHandler触发下载。将completionHandler传递给将使用NSURL会话的代码。

c)在下载完成后,触发本地notifcation,并执行completionHandler iOS版已送你“performFetchWithCompletionHandler”

像往常一样记你有严格的时间限制..

另一个方式(也许简单..)使用backgroundSessionConfiguration/downloadTask。

呼叫

回只需发送一个本地通知。

+0

这非常有帮助。非常感谢你。猜测这种方法唯一的问题是,如果用户终止应用,用户将不会收到通知。 – antande

+0

的方式是使用本地通知。你添加它们,你的应用程序将在未来被唤醒。 – ingconti

相关问题