import { Injectable } from '@angular/core'; import { Cordova, IonicNativePlugin, Plugin } from '@ionic-native/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; /** * specifies if the data returned by querySampleType() should be sorted by * end date in ascending order, default is false */ ascending?: boolean; 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; /** * limits the maximum number of records returned by querySampleType() */ limit?: number; metadata?: any; quantityType?: string; type?: 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} */ @Cordova() available(): Promise { return; } /** * Pass in a type and get back on of undetermined | denied | authorized * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() checkAuthStatus(options: HealthKitOptions): Promise { return; } /** * Ask some or all permissions up front * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() requestAuthorization(options: HealthKitOptions): Promise { return; } /** * Formatted as yyyy-MM-dd * @returns {Promise} */ @Cordova() readDateOfBirth(): Promise { return; } /** * Output = male|female|other|unknown * @returns {Promise} */ @Cordova() readGender(): Promise { return; } /** * Output = A+|A-|B+|B-|AB+|AB-|O+|O-|unknown * @returns {Promise} */ @Cordova() readBloodType(): Promise { return; } /** * Output = I|II|III|IV|V|VI|unknown * @returns {Promise} */ @Cordova() readFitzpatrickSkinType(): Promise { return; } /** * Pass in unit (g=gram, kg=kilogram, oz=ounce, lb=pound, st=stone) and amount * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() saveWeight(options: HealthKitOptions): Promise { return; } /** * Pass in unit (g=gram, kg=kilogram, oz=ounce, lb=pound, st=stone) * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() readWeight(options: HealthKitOptions): Promise { return; } /** * Pass in unit (mm=millimeter, cm=centimeter, m=meter, in=inch, ft=foot) and amount * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() saveHeight(options: HealthKitOptions): Promise { return; } /** * Pass in unit (mm=millimeter, cm=centimeter, m=meter, in=inch, ft=foot) * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() readHeight(options: HealthKitOptions): Promise { return; } /** * no params yet, so this will return all workouts ever of any type * @returns {Promise} */ @Cordova() findWorkouts(): Promise { return; } /** * * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() saveWorkout(options: HealthKitOptions): Promise { return; } /** * * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() querySampleType(options: HealthKitOptions): Promise { return; } /** * * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() querySampleTypeAggregated(options: HealthKitOptions): Promise { return; } /** * * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() deleteSamples(options: HealthKitOptions): Promise { return; } /** * * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() monitorSampleType(options: HealthKitOptions): Promise { return; } /** * * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() sumQuantityType(options: HealthKitOptions): Promise { return; } /** * * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() saveQuantitySample(options: HealthKitOptions): Promise { return; } /** * * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() saveCorrelation(options: HealthKitOptions): Promise { return; } /** * * @param options {HealthKitOptions} * @returns {Promise} */ @Cordova() queryCorrelationType(options: HealthKitOptions): Promise { return; } }