Thank this project. I forked some code. [https://github.com/ErlichChen/react-native-healthkit.git] [https://github.com/terrillo/rn-apple-healthkit/blob/master/README.md] (originally)
Compared to ErlichChens version I added promise support and metadata support.
- Instal @kingstinct/react-native-healthkit package from npm.
npm install @kingstinct/react-native-healthkit --save
react-native link @kingstinct/react-native-healthkit
- Update info.plist in your React Native project.
<key>NSHealthShareUsageDescription</key>
<string>Read and write health data.</string>
<key>NSHealthUpdateUsageDescription</key>
<string>Read and write health data.</string>
- Enable HealthKit in your React Native project.
import RNHealthKit from '@kingstinct/react-native-healthkit';
const success = await RNHealthKit.isSupportHealthKit()
let permissions = {
read: ['Weight', 'BloodGlucose', 'OxygenSaturation', 'BloodPressureSystolic', 'BloodPressureDiastolic', 'BodyTemperature', 'HeartRate'],
write: ['Weight', 'BloodGlucose', 'OxygenSaturation', 'BloodPressureSystolic', 'BloodPressureDiastolic', 'BodyTemperature', 'HeartRate'],
};
const success = RNHealthKit.requestPermissions(permissions);
- Save health weight data
let healthData = {
HKType: 'Weight',
weight: 160,
date: '2017-12-05 10:10:10',
unit: 'lb'
}
const success = await RNHealthKit.saveHealthData(healthData);
- Save health blood glucose
let healthData = {
HKType: 'BloodGlucose',
bloodGlucose: 100,
date: '2017-12-05 10:10:10',
unit: 'mg/dL'
}
const success = await RNHealthKit.saveHealthData(healthData);
- Save oxygensaturation data
let healthData = {
HKType: 'OxygenSaturation',
oxygenSaturation: 0.99,
date: '2017-12-05 10:10:10',
unit: '%'
}
const success = await RNHealthKit.saveHealthData(healthData);
- Save blood pressure data
let healthData = {
HKType: 'BloodPressure',
bloodPressureSystolic: 120,
bloodPressureDiastolic: 70,
date: '2017-12-05 10:10:10',
unit: 'mmhg'
}
const success = await RNHealthKit.saveHealthData(healthData);
- Save heart rate data
let healthData = {
HKType: 'HeartRate',
heartRate: 70,
date: '2017-12-05 10:10:10',
unit: 'cpm'
}
const success = await RNHealthKit.saveHealthData(healthData);
- Save body temperature
let healthData = {
HKType: 'BodyTemperature',
bodyTemperature: 20,
date: '2017-12-05 10:10:10',
unit: 'celsius'
}
const success = await RNHealthKit.saveHealthData(healthData);