application(_:didFinishLaunchingWithOptions:)
implementation, it must call Vital Health SDK
automaticConfiguration()
synchronously before it returns.
Details
VitalResource
.
Because Ask for Permission are gracefully ignored by the operating system beyond
the first time, checking before asking can help you skip the parts of your UX journey that only makes sense to users
going through Ask for Permission for the first time.
The only exception to this behaviour is when a VitalResource
pulls a new data type introduced in a new OS release.
In this scenario, calling Ask for Permission would result in a OS permission
prompt that asks for permissions on specifically those new data types.
If you wish
to provide a way for users to review their permission grants or denials, you can
inform them of the system app location where they can do so.
To help prevent possible leaks of sensitive health information, your app cannot determine whether or not a user has granted permission to read data. If you are not given permission, it simply appears as if there is no data of the requested type in the HealthKit store. […]In other words, all third-party apps — including anyone using the Vital Health SDK — would:
Operating System | System App | Location |
---|---|---|
iOS 8.0 and above | Health app | Sharing > Apps and Services |
iOS 15.0 and above | Settings app | Privacy & Security > Health |
Android 13 or below | Health Connect app | Apps and Permissions |
Android 14 and above | Settings app | Health Connect > Apps and Permissions |
Sync is automatically… | |
---|---|
Activated on | All resource types you have asked permission for. |
Triggered by | Two behaviours:
|
Sync is automatically… | |
---|---|
Activated on | All resource types you have asked permission for. |
Triggered by | Two mechanisms:
|
syncData()
.
health_resource.dart
file.syncStatus
stream for continuous updates on the health data sync status.
Sync Progress View on Native iOS
ForEachVitalResource
— a pre-baked SwiftUI View providing a
live-updated sync progress feed of all the VitalResource
s whose permissions have been asked for.You can use ForEachVitalResource()
in any position which you would use ForEach
. For example,
you can use it inside a Section
of a List
:UIHostingController
:Sync Progress UI on Flutter / React Native