iOS swift后台刷新系统设置 - 识别蜂窝数据传输

时间:2017-11-06 17:28:43

标签: ios swift background background-service background-fetch

一些背景信息
我使用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个可能的值,用户可以设置:

  1. Aus(关闭)
  2. WLAN(WiFi)
  3. WLAN&移动日期(WiFi和移动电话/移动数据)

    enter image description here

  4. 现在我的问题:
    如果设置位于off或仅位于Wifi(请参阅红色矩形),我想询问用户后台服务权限。根据Apples文档,只能检查常规设置 - >无论是开还是关。有没有可能像我在屏幕截图中提到的那样检查它?

0 个答案:

没有答案