我知道这不是这类问题的第一个版本 - 但我发现的所有信息似乎都已经过时甚至是错误的。所以我决定再问这个问题。
目前,我正在使用远程通知向我的iOS设备发送通知。因为我想每小时“唤醒”我的应用程序(即使应用程序被用户强制关闭),我的想法是使用静音推送通知。
只是发送通知工作得很好 - 即使在后台或用户强制关闭后也是如此。但是,如果通过使用静默推送通知强制关闭执行后台任务,如何唤醒我的应用程序?
func application( _ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
let aps = userInfo["aps"] as! [String: AnyObject] { // remote information
completionHandler(.newData) // call completion handler
}
这是通知的原始内容:
发送通知但不执行后台任务(不会唤醒我的应用)
{
"aps" : {
"alert" : {
"title" : "..."
},
"content-available" : 1,
"information" : "abc"
}
}
也不执行后台任务(不会唤醒我的应用程序)
{
"aps" : {
"content-available" : 1,
"information" : "abc"
}
}