🔹 React Native Apple HealthKit A React Native package to interact with Apple HealthKit for iOS. This package allows access to health & fitness data exposed by Apple Healthkit.
- 📆 Check Availability: Check whether HealthKit is available on current device.
- 🔒 Secure Access: Requires user permission for accessing HealthKit data.
- 📸 Snapshot for N days: Returns a snapshot for past N days of user's: steps count & heart rate;
Before getting started, ensure you have:
- React Native version
0.75+
- iOS 13++ (Native API support)
- new architecture support
Run the following command to install the package:
npm install @gromozeqa/react-native-apple-health-kit
yarn add @gromozeqa/react-native-apple-health-kit
cd ios && pod install
Edit Info.plist
. Add the following item (Set Value as desired):
Key | Type | Value |
---|---|---|
Privacy - NSHealthShareUsageDescription | String |
CHANGEME: This app requires read access to your Health data. |
Open the ios/ folder of your project in Xcode Select the project name in the left sidebar In the main view select '+ Capability' and double click 'HealthKit'
📌 Example Usage
✅ Request Permissions
To check the current status of calendar permissions, use:
import { requestHealthKitPermissions } from '@gromozeqa/react-native-apple-health-kit';
const requestPermissions = async () => {
const status = await requestHealthKitPermissions();
console.log(status);
};
Below are the methods available in React Native Apple HealthKit
📌 Get steps count for past N days
import { getSteps } from '@gromozeqa/react-native-apple-health-kit';
const getStepsCount = async () => {
try {
const steps = await getSteps(30);
console.log(steps);
} catch (error) {
console.log(error);
}
};
📌 Get heart rate for past N days
import { getHeartRate } from '@gromozeqa/react-native-apple-health-kit';
const getUsersHeartRate = async () => {
try {
const steps = await getHeartRate(30);
console.log(steps);
} catch (error) {
console.log(error);
}
};
📌 Get user's body measurement
import { getMeasurement } from '@gromozeqa/react-native-apple-health-kit';
const getUserMeasurement = async () => {
try {
const steps = await getMeasurement();
console.log(steps);
} catch (error) {
console.log(error);
}
};
Due to Apple's privacy model, if a user has previously denied a specific permission they will not be prompted again for that permission. The user will need to go into the Apple Health app and grant the permission to your app.
If read permissions are not granted for the requested data, the method will return an empty array.