Commit 84423684 authored by Greg Wilson's avatar Greg Wilson

updated getDateOfBirth and getBiologicalSex methods and readme

parent acdd7336
...@@ -38,7 +38,11 @@ ...@@ -38,7 +38,11 @@
return; return;
} }
callback(@[[NSNull null], value]); NSDictionary *response = @{
@"value" : value,
};
callback(@[[NSNull null], response]);
} }
...@@ -54,7 +58,16 @@ ...@@ -54,7 +58,16 @@
NSString *dobString = [RCTAppleHealthKit buildISO8601StringFromDate:dob]; NSString *dobString = [RCTAppleHealthKit buildISO8601StringFromDate:dob];
callback(@[[NSNull null], dobString]); NSDate *now = [NSDate date];
NSDateComponents *ageComponents = [[NSCalendar currentCalendar] components:NSCalendarUnitYear fromDate:dob toDate:now options:NSCalendarWrapComponents];
NSUInteger ageInYears = ageComponents.year;
NSDictionary *response = @{
@"value" : dobString,
@"age" : @(ageInYears),
};
callback(@[[NSNull null], response]);
} }
......
...@@ -234,25 +234,35 @@ Get the biological sex (gender). If the `BiologicalSex` read permission is missi ...@@ -234,25 +234,35 @@ Get the biological sex (gender). If the `BiologicalSex` read permission is missi
| other | HKBiologicalSexOther | | other | HKBiologicalSexOther |
```javascript ```javascript
AppleHealthKit.getBiologicalSex(null, (err: Object, bioSex: string) => { AppleHealthKit.getBiologicalSex(null, (err: Object, res: Object) => {
if(this._handleHealthKitError(err, 'getBiologicalSex')){ if(this._handleHealthKitError(err, 'getBiologicalSex')){
return; return;
} }
// use bioSex ... // res.value will be one of the values from the above table (Value column) ...
// use res.value ...
}); });
``` ```
___ ___
#### **`getDateOfBirth`** #### **`getDateOfBirth`**
Get the date of birth. This will be an ISO timestamp Get the date of birth.
On success, the callback function will be provided with a `res` object containing dob `value` (ISO timestamp), and `age` in years:
```javascript ```javascript
AppleHealthKit.getDateOfBirth(null, (err: Object, dob: string) => { {
value: '1986-09-01T00:00:00.000-0400',
age: 29
}
```
```javascript
AppleHealthKit.getDateOfBirth(null, (err: Object, res: Object) => {
if(this._handleHealthKitError(err, 'getDateOfBirth')){ if(this._handleHealthKitError(err, 'getDateOfBirth')){
return; return;
} }
// use dob ... (ex: '1986-09-01T12:20:30-04:00') // use res.value ... (ex: '1986-09-01T12:20:30-04:00')
// use res.age ... (ex: 29)
}); });
``` ```
......
...@@ -24,6 +24,8 @@ const HKOPTIONS = { ...@@ -24,6 +24,8 @@ const HKOPTIONS = {
HKPERMS.DistanceWalkingRunning, HKPERMS.DistanceWalkingRunning,
HKPERMS.FlightsClimbed, HKPERMS.FlightsClimbed,
HKPERMS.Height, HKPERMS.Height,
HKPERMS.DateOfBirth,
HKPERMS.BiologicalSex,
], ],
write: [ write: [
HKPERMS.StepCount HKPERMS.StepCount
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
378616B61D257B040027C300 /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 378616B51D257B040027C300 /* HealthKit.framework */; }; 378616B61D257B040027C300 /* HealthKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 378616B51D257B040027C300 /* HealthKit.framework */; };
378DCB4D1D3179B500E83D06 /* libRCTAppleHealthKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 378DCB4C1D3179B000E83D06 /* libRCTAppleHealthKit.a */; }; 378DCB541D31810500E83D06 /* libRCTAppleHealthKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 378DCB531D31810200E83D06 /* libRCTAppleHealthKit.a */; };
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
...@@ -91,9 +91,9 @@ ...@@ -91,9 +91,9 @@
remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192;
remoteInfo = React; remoteInfo = React;
}; };
378DCB4B1D3179B000E83D06 /* PBXContainerItemProxy */ = { 378DCB521D31810200E83D06 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy; isa = PBXContainerItemProxy;
containerPortal = 378DCB471D3179B000E83D06 /* RCTAppleHealthKit.xcodeproj */; containerPortal = 378DCB4E1D31810200E83D06 /* RCTAppleHealthKit.xcodeproj */;
proxyType = 2; proxyType = 2;
remoteGlobalIDString = 3774C88D1D2092F20000B3F3; remoteGlobalIDString = 3774C88D1D2092F20000B3F3;
remoteInfo = RCTAppleHealthKit; remoteInfo = RCTAppleHealthKit;
...@@ -136,7 +136,7 @@ ...@@ -136,7 +136,7 @@
146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; }; 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
378616B51D257B040027C300 /* HealthKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HealthKit.framework; path = System/Library/Frameworks/HealthKit.framework; sourceTree = SDKROOT; }; 378616B51D257B040027C300 /* HealthKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HealthKit.framework; path = System/Library/Frameworks/HealthKit.framework; sourceTree = SDKROOT; };
378616B71D257B040027C300 /* StepsDemo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = StepsDemo.entitlements; path = StepsDemo/StepsDemo.entitlements; sourceTree = "<group>"; }; 378616B71D257B040027C300 /* StepsDemo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = StepsDemo.entitlements; path = StepsDemo/StepsDemo.entitlements; sourceTree = "<group>"; };
378DCB471D3179B000E83D06 /* RCTAppleHealthKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAppleHealthKit.xcodeproj; path = "../node_modules/react-native-apple-healthkit/RCTAppleHealthKit.xcodeproj"; sourceTree = "<group>"; }; 378DCB4E1D31810200E83D06 /* RCTAppleHealthKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAppleHealthKit.xcodeproj; path = "../node_modules/react-native-apple-healthkit/RCTAppleHealthKit.xcodeproj"; sourceTree = "<group>"; };
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; }; 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; }; 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
...@@ -154,7 +154,7 @@ ...@@ -154,7 +154,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
378DCB4D1D3179B500E83D06 /* libRCTAppleHealthKit.a in Frameworks */, 378DCB541D31810500E83D06 /* libRCTAppleHealthKit.a in Frameworks */,
146834051AC3E58100842450 /* libReact.a in Frameworks */, 146834051AC3E58100842450 /* libReact.a in Frameworks */,
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
378616B61D257B040027C300 /* HealthKit.framework in Frameworks */, 378616B61D257B040027C300 /* HealthKit.framework in Frameworks */,
...@@ -268,10 +268,10 @@ ...@@ -268,10 +268,10 @@
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
378DCB481D3179B000E83D06 /* Products */ = { 378DCB4F1D31810200E83D06 /* Products */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
378DCB4C1D3179B000E83D06 /* libRCTAppleHealthKit.a */, 378DCB531D31810200E83D06 /* libRCTAppleHealthKit.a */,
); );
name = Products; name = Products;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -287,7 +287,7 @@ ...@@ -287,7 +287,7 @@
832341AE1AAA6A7D00B99B32 /* Libraries */ = { 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
378DCB471D3179B000E83D06 /* RCTAppleHealthKit.xcodeproj */, 378DCB4E1D31810200E83D06 /* RCTAppleHealthKit.xcodeproj */,
146833FF1AC3E56700842450 /* React.xcodeproj */, 146833FF1AC3E56700842450 /* React.xcodeproj */,
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */,
...@@ -411,8 +411,8 @@ ...@@ -411,8 +411,8 @@
ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */;
}, },
{ {
ProductGroup = 378DCB481D3179B000E83D06 /* Products */; ProductGroup = 378DCB4F1D31810200E83D06 /* Products */;
ProjectRef = 378DCB471D3179B000E83D06 /* RCTAppleHealthKit.xcodeproj */; ProjectRef = 378DCB4E1D31810200E83D06 /* RCTAppleHealthKit.xcodeproj */;
}, },
{ {
ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */;
...@@ -516,11 +516,11 @@ ...@@ -516,11 +516,11 @@
remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR; sourceTree = BUILT_PRODUCTS_DIR;
}; };
378DCB4C1D3179B000E83D06 /* libRCTAppleHealthKit.a */ = { 378DCB531D31810200E83D06 /* libRCTAppleHealthKit.a */ = {
isa = PBXReferenceProxy; isa = PBXReferenceProxy;
fileType = archive.ar; fileType = archive.ar;
path = libRCTAppleHealthKit.a; path = libRCTAppleHealthKit.a;
remoteRef = 378DCB4B1D3179B000E83D06 /* PBXContainerItemProxy */; remoteRef = 378DCB521D31810200E83D06 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR; sourceTree = BUILT_PRODUCTS_DIR;
}; };
78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment