-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(health-kit): add HealthKit plugin (#1499)
* typo(barcode-scanner): fixe circle lint error * typo(docs): Unified the documentations In some plugins the typescript markup was missing. I also unified the console.log string from console.log("hello") to console.log('Hello') so any plugin page look the same. * Initial commit - added Plugin infos - added methods * Added Interface * Implemented all methods * fixed retun types TODO: Improve Interface Docs * Interface discription Still needs some improvements
- Loading branch information
1 parent
c7111a3
commit 14f38a0
Showing
1 changed file
with
309 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,309 @@ | ||
import { Plugin, Cordova, IonicNativePlugin } from '@ionic-native/core'; | ||
import { Injectable } from '@angular/core'; | ||
|
||
export interface HealthKitOptions { | ||
/** | ||
* HKWorkoutActivityType constant | ||
* Read more here: https://developer.apple.com/library/ios/documentation/HealthKit/Reference/HKWorkout_Class/#//apple_ref/c/tdef/HKWorkoutActivityType | ||
*/ | ||
activityType?: string; // | ||
|
||
/** | ||
* 'hour', 'week', 'year' or 'day', default 'day' | ||
*/ | ||
aggregation?: string; | ||
|
||
/** | ||
* | ||
*/ | ||
amount?: number; | ||
|
||
/** | ||
* | ||
*/ | ||
correlationType?: string; | ||
|
||
/** | ||
* | ||
*/ | ||
date?: any; | ||
|
||
/** | ||
* | ||
*/ | ||
distance?: number; | ||
|
||
/** | ||
* probably useful with the former param | ||
*/ | ||
distanceUnit?: string; | ||
|
||
/** | ||
* in seconds, optional, use either this or endDate | ||
*/ | ||
duration?: number; | ||
|
||
/** | ||
* | ||
*/ | ||
endDate?: any; | ||
|
||
/** | ||
* | ||
*/ | ||
energy?: number; | ||
|
||
/** | ||
* J|cal|kcal | ||
*/ | ||
energyUnit?: string; | ||
|
||
/** | ||
* | ||
*/ | ||
extraData?: any; | ||
|
||
/** | ||
* | ||
*/ | ||
metadata?: any; | ||
|
||
/** | ||
* | ||
*/ | ||
quantityType?: string; | ||
|
||
/** | ||
* | ||
*/ | ||
readTypes?: any; | ||
|
||
/** | ||
* | ||
*/ | ||
requestWritePermission?: boolean; | ||
|
||
/** | ||
* | ||
*/ | ||
samples?: any; | ||
|
||
/** | ||
* | ||
*/ | ||
sampleType?: string; | ||
|
||
/** | ||
* | ||
*/ | ||
startDate?: any; | ||
|
||
/** | ||
* m|cm|mm|in|ft | ||
*/ | ||
unit?: string; | ||
|
||
/** | ||
* | ||
*/ | ||
requestReadPermission?: boolean; | ||
|
||
/** | ||
* | ||
*/ | ||
writeTypes?: any; | ||
} | ||
|
||
/** | ||
* @name Health Kit | ||
* @description | ||
* The HealthKit plugin allows you to read data from and write data to the iOS 8+ HealthKit framework. | ||
* Any data saved shows up in the iOS Health app and is available for other iOS apps. | ||
* | ||
* @usage | ||
* ```typescript | ||
* import { HealthKit } from '@ionic-native/health-kit'; | ||
* | ||
* | ||
* constructor(private healthKit: HealthKit) { } | ||
* | ||
* ... | ||
* ``` | ||
* | ||
* @interfaces | ||
* HealthKitOptions | ||
*/ | ||
@Plugin({ | ||
pluginName: 'HealthKit', | ||
plugin: 'com.telerik.plugins.healthkit', | ||
pluginRef: 'window.plugins.healthkit', | ||
repo: 'https://github.com/Telerik-Verified-Plugins/HealthKit', | ||
platforms: ['iOS'] | ||
}) | ||
@Injectable() | ||
export class HealthKit extends IonicNativePlugin { | ||
|
||
/** | ||
* Check if HealthKit is supported (iOS8+, not on iPad) | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
available(): Promise<any> { return; } | ||
|
||
/** | ||
* Pass in a type and get back on of undetermined | denied | authorized | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
checkAuthStatus(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* Ask some or all permissions up front | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
requestAuthorization(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* Formatted as yyyy-MM-dd | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
readDateOfBirth(): Promise<any> { return; } | ||
|
||
/** | ||
* Output = male|female|other|unknown | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
readGender(): Promise<any> { return; } | ||
|
||
/** | ||
* Output = A+|A-|B+|B-|AB+|AB-|O+|O-|unknown | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
readBloodType(): Promise<any> { return; } | ||
|
||
/** | ||
* Output = I|II|III|IV|V|VI|unknown | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
readFitzpatrickSkinType(): Promise<any> { return; } | ||
|
||
/** | ||
* Pass in unit (g=gram, kg=kilogram, oz=ounce, lb=pound, st=stone) and amount | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
saveWeight(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* Pass in unit (g=gram, kg=kilogram, oz=ounce, lb=pound, st=stone) | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
readWeight(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* Pass in unit (mm=millimeter, cm=centimeter, m=meter, in=inch, ft=foot) and amount | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
saveHeight(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* Pass in unit (mm=millimeter, cm=centimeter, m=meter, in=inch, ft=foot) | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
readHeight(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* no params yet, so this will return all workouts ever of any type | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
findWorkouts(): Promise<any> { return; } | ||
|
||
/** | ||
* | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
saveWorkout(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
querySampleType(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
querySampleTypeAggregated(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
deleteSamples(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
monitorSampleType(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
sumQuantityType(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
saveQuantitySample(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
saveCorrelation(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
/** | ||
* | ||
* @param options {HealthKitOptions} | ||
* @returns {Promise<any>} | ||
*/ | ||
@Cordova() | ||
queryCorrelationType(options: HealthKitOptions): Promise<any> { return; } | ||
|
||
|
||
} |