当您调用healthStore.requestAuthorization
方法时,如果用户第一次运行该应用程序时该用户不允许访问,并显示对话框,那么我如何在我的应用程序中观察他是否稍后在Health上允许访问应用程序,以便尝试再次请求信息以显示在我的应用程序中?
我在documentation中发现的唯一要订阅的通知是HKUserPreferencesDidChange
,它没有谈论授权状态,而是:
每当用户更改其首选单位时通知观察者。
答案 0 :(得分:1)
您不一定非要使用HealthKit来实现此问题。您是否尝试过创建和检查布尔值(即isAuthorized)以处理状态?您可以在视图控制器的viewDidAppear(_ :)中进行检查,如果isAuthorized为false,则调用healthStore.requestAuthorization。
此外,如果用户已经拒绝了最初的HealthKit请求,则可以选择一个新的视图控制器,其中包含有关如何允许通过用户iPhone上的“设置”应用程序进行访问的说明。
答案 1 :(得分:1)
根据设计,您无法确定用户是否已授予对HealthKit数据的读取访问权限。要确定您的应用是否具有写访问权,请在HKHealthStore上使用authorizationStatusForType:。