OGeek|极客世界-中国程序员成长平台

标题: ios - 当应用程序未运行时,通过静默推送通知在后台更新本地数据库 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:06
标题: ios - 当应用程序未运行时,通过静默推送通知在后台更新本地数据库

是否可以在用户无需点击通知(通知中心没有通知,因为它是静默推送通知)。 该应用程序根本没有运行(例如,用户强制退出)。我已经尝试了下面的代码,如果应用程序正在运行或在后台运行,它可以工作,但如果应用程序被强制退出(根本不运行),我也希望它工作。

我已启用后台获取和远程通知。

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
    handleNotification()
}

//this works, the someData is not a problem
func handleNotification() -> Void{
    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setValue(someData, forKey: "key")
    defaults.synchronize()
}

当我发送推送通知时,如果应用程序处于事件状态或在后台,数据会更新,但如果应用程序根本没有运行,则数据不会更新。



Best Answer-推荐答案


简答:当应用强制退出(未运行)时,如果没有用户交互,(几乎)无法做任何事情。

解释见文档:

如您所见,唯一的异常(exception)是位置应用程序,但这对您没有帮助。 请处理以下事实,这是一个操作系统限制,您无能为力。

关于ios - 当应用程序未运行时,通过静默推送通知在后台更新本地数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31501279/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4