当应用程序未运行时,使用推送通知的内容更新 SQLite

Posted

技术标签:

【中文标题】当应用程序未运行时,使用推送通知的内容更新 SQLite【英文标题】:update SQLite with content of push notification when the app is not running 【发布时间】:2015-04-22 11:30:14 【问题描述】:

有没有办法在收到推送通知但应用当前未运行(或应用被终止)后立即更新 SQLite。

如果通知在应用程序运行或后台时到达 - “didReceiveRemoteNotification”方法处理我的更新。

如果通知在应用程序未运行时到达,我想将推送通知的内容更新到我的 sqlite。当用户点击通知时更新有效,但当用户点击应用程序图标时更新无效。 请帮忙。谢谢。

【问题讨论】:

没有办法做到这一点。通知由 ios 自己处理。如果应用程序会处理这个问题,可能有一些方法可以解决这个问题。我一直在浪费时间,但没有成功。 【参考方案1】:

我认为没有点击就无法更新数据库。但是,如果您的应用正在使用苹果文档中提到的 VOIP 或位置更新等后台模式,https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

然后它可能会在特定时间唤醒您的应用并执行更新部分。 编辑 顺便说一句,当推送通知到达时,服务器也应该更新,我不认为推送通知是更新数据库的好方法。相反,您应该调用您的服务器以获取最新的本地事件,然后更新到您的 sqlite。您可以在 didFinishLaunching 或 didEnterForeground 中执行此操作。只是一个建议。

【讨论】:

谢谢拉詹的回答。我会接受你的建议。

以上是关于当应用程序未运行时,使用推送通知的内容更新 SQLite的主要内容,如果未能解决你的问题,请参考以下文章

当我收到静默推送通知时,iOS 会唤醒我的应用程序吗?(当应用程序未处于运行状态时)

当应用程序未运行/注销时禁用苹果推送通知

当应用程序未运行时处理 JSON 推送通知解析

应用未运行时检查 JSON 内容的变化

当应用程序未运行时,GCM 推送通知未在某些设备中显示

当应用程序处于未运行或后台状态时,如何处理推送通知有效负载而不点击它