From 44ff14d00f5a667bbb7abc649e184f8d68c4411e Mon Sep 17 00:00:00 2001 From: 20150024 Date: Fri, 20 Apr 2018 13:49:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A8=98=E9=8C=84timestamp=E7=9A=84=E6=AA=94?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RCTAppleHealthKit+NSUserDefaults.h | 3 ++ .../RCTAppleHealthKit+NSUserDefaults.m | 39 +++++++++++++++++++ RCTAppleHealthKit/RCTAppleHealthKit.m | 10 +++++ 3 files changed, 52 insertions(+) diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+NSUserDefaults.h b/RCTAppleHealthKit/RCTAppleHealthKit+NSUserDefaults.h index 6388b43..acac28b 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+NSUserDefaults.h +++ b/RCTAppleHealthKit/RCTAppleHealthKit+NSUserDefaults.h @@ -13,4 +13,7 @@ - (void)set_UserDefaultsByKey:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; - (void)reset_UserDefaultsByKey:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; +- (void)get_TimestampByKey:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; +- (void)set_TimestampByKey:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback; + @end diff --git a/RCTAppleHealthKit/RCTAppleHealthKit+NSUserDefaults.m b/RCTAppleHealthKit/RCTAppleHealthKit+NSUserDefaults.m index 458257a..2f3e7af 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit+NSUserDefaults.m +++ b/RCTAppleHealthKit/RCTAppleHealthKit+NSUserDefaults.m @@ -32,4 +32,43 @@ callback(@[[NSNull null], result]); } +- (void)get_TimestampByKey:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback +{ + NSString *key = [input objectForKey:@"key"]; + NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; + NSString *filePath = [url.path stringByAppendingPathComponent:key]; + NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; + + if (content != nil) { + NSDictionary *result = @{ + @"timestamp" : content + }; + callback(@[[NSNull null], result]); + } else { + callback(@[[NSNull null]]); + } +} + +- (void)set_TimestampByKey:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback +{ + NSString *key = [input objectForKey:@"key"]; + NSString *timestamp = [input objectForKey:@"timestamp"]; + NSURL *url = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; + NSString *filePath = [url.path stringByAppendingPathComponent:key]; + NSError *error; + BOOL ok = [timestamp writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error]; + NSDictionary *result; + if (!ok) { + NSLog(@"Error writing file at %@\n%@", filePath, [error localizedFailureReason]); + result = @{ + @"status" : @(false) + }; + } else { + result = @{ + @"status" : @(true) + }; + } + callback(@[[NSNull null], result]); +} + @end diff --git a/RCTAppleHealthKit/RCTAppleHealthKit.m b/RCTAppleHealthKit/RCTAppleHealthKit.m index bff6e78..5ab8492 100644 --- a/RCTAppleHealthKit/RCTAppleHealthKit.m +++ b/RCTAppleHealthKit/RCTAppleHealthKit.m @@ -206,6 +206,16 @@ RCT_EXPORT_METHOD(resetUserDefaults:(NSDictionary *)input callback:(RCTResponseS [self reset_UserDefaultsByKey:input callback:callback]; } +RCT_EXPORT_METHOD(getLastTimestamp:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback) +{ + [self get_TimestampByKey:input callback:callback]; +} + +RCT_EXPORT_METHOD(setTimestamp:(NSDictionary *)input callback:(RCTResponseSenderBlock)callback) +{ + [self set_TimestampByKey:input callback:callback]; +} + - (void)isHealthKitAvailable:(RCTResponseSenderBlock)callback { BOOL isAvailable = NO; -- 2.26.2