一些背景信息
我使用silentPush功能(didReceiveRemoteNotification
)来保持iOS应用与其他平台和我的后端同步。
所以,为了确保用户在iOS设置中启用后台刷新,我使用以下代码检查设备设置:
// Check Background Refresh
switch UIApplication.shared.backgroundRefreshStatus {
case .available:
// iOS background refresh is enabled in iOS settings
// -> No need to ask user for permission
break
case .denied:
// iOS background refresh is disabled in iOS settings
// here is my code to notify user to enable his background refresh iOS settings
break
}
根据Apple文档(https://developer.apple.com/documentation/uikit/uiapplication/1622994-backgroundrefreshstatus),有一个属性backgroundRefreshStatus
,表示用户是否启用了后台服务 - >这正是我上面实现的代码。
此属性反映应用程序是否可以启动到后台以处理后台行为,例如处理后台位置更新和执行后台提取。如果您的应用依赖于在后台启动以执行任务,则可以使用此属性的值来确定是否可以这样做,并在不是用户时警告用户。如果此属性的值设置为restricted,请不要警告用户;受限用户无法为应用启用多任务处理。
以下短语现在在我的案例中很有意思
您可以使用此属性的值来确定是否可以这样做,并警告用户是否
我查看了iOS后台刷新系统设置,找到了3个可能的值,用户可以设置: