允许访问健康:我如何在应用程序中知道用户以后启用/禁用了它?

时间:2018-07-08 14:39:10

标签: ios swift notifications health-kit observers

当您调用healthStore.requestAuthorization方法时,如果用户第一次运行该应用程序时该用户不允许访问,并显示对话框,那么我如何在我的应用程序中观察他是否稍后在Health上允许访问应用程序,以便尝试再次请求信息以显示在我的应用程序中?

我在documentation中发现的唯一要订阅的通知是HKUserPreferencesDidChange,它没有谈论授权状态,而是:

  

每当用户更改其首选单位时通知观察者。

2 个答案:

答案 0 :(得分:1)

您不一定非要使用HealthKit来实现此问题。您是否尝试过创建和检查布尔值(即isAuthorized)以处理状态?您可以在视图控制器的viewDidAppear(_ :)中进行检查,如果isAuthorized为false,则调用healthStore.requestAuthorization。

此外,如果用户已经拒绝了最初的HealthKit请求,则可以选择一个新的视图控制器,其中包含有关如何允许通过用户iPhone上的“设置”应用程序进行访问的说明。

答案 1 :(得分:1)

根据设计,您无法确定用户是否已授予对HealthKit数据的读取访问权限。要确定您的应用是否具有写访问权,请在HKHealthStore上使用authorizationStatusForType:。