From d6d9a09d505d11148599a95a5be3e1351edbe0ac Mon Sep 17 00:00:00 2001 From: hc Date: Mon, 13 Apr 2026 15:17:52 +0800 Subject: Local iHealth SDK, device detail screen, iOS event fixes --- .../ios/ReactNativeIOSLibrary/HS2SModule.m | 1052 ++++++++++++++++++++ 1 file changed, 1052 insertions(+) create mode 100644 libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2SModule.m (limited to 'libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2SModule.m') diff --git a/libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2SModule.m b/libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2SModule.m new file mode 100644 index 0000000..c048ca8 --- /dev/null +++ b/libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2SModule.m @@ -0,0 +1,1052 @@ +// +// HS2Module.m +// ReactNativeIOSLibrary +// +// Created by jing on 2018/11/26. +// Copyright © 2018年 daiqingquan. All rights reserved. +// + +#import "HS2SModule.h" +#import "HS2SProfileModule.h" +#import "HSMacroFile.h" +#import "HS2SController.h" +#import "HS2S.h" +#import "iHealthDeviceManagerModule.h" +#import "ManageDeviceController.h" + +#define EVENT_NOTIFY @"HS2S.MODULE.NOTIFY" +#define kMAC_KEY @"mac" +#define kACTION_KEY @"action" +#define kTYPE_KEY @"type" + +#define kTYPE_HS2S @"HS2S" + +@implementation HS2SModule + +RCT_EXPORT_MODULE() +- (NSArray *)supportedEvents { + return @[@"event_notify", @"event_scan_device", @"event_scan_finish", + @"event_device_connected", @"event_device_connect_failed", + @"event_device_disconnect", @"event_authenticate_result", + @"event_notify_ts28b", @"event_notify_bg1", + @"action_connect_result_for_bg1"]; +} + + +#pragma mark-init + +-(NSDictionary *)constantsToExport{ + return @{ + @"Event_Notify" : EVENT_NOTIFY + }; +} + ++ (BOOL)requiresMainQueueSetup +{ + return YES; +} + +-(HS2S *)getHS2SWithMac:(NSString *)mac{ + HS2SController *controller = [HS2SController shareIHHS2SController]; + NSArray *hs2sDeviceArray = [controller getAllCurrentHS2SInstace]; + for (HS2S *tempHS2S in hs2sDeviceArray) { + if ([mac isEqualToString:tempHS2S.serialNumber]){ + return tempHS2S; + break; + } + } + return nil; +} + +#pragma mark +#pragma mark - Method + + +#pragma mark-获取连接设备 +RCT_EXPORT_METHOD(getAllConnectedDevices){ + + + NSArray*hs2sarray= [[HS2SController shareIHHS2SController] getAllCurrentHS2SInstace]; + + NSMutableArray*deviceMacArray=[NSMutableArray array]; + + for (int i=0; i<[hs2sarray count]; i++) { + + HS2S*hs2s=[hs2sarray objectAtIndex:i]; + + [deviceMacArray addObject:hs2s.serialNumber]; + + } + + NSDictionary* deviceInfo = @{kACTION_KEY:ACTION_GET_ALL_CONNECTED_DEVICES,@"devices":deviceMacArray}; + [self sendEventWithName:EVENT_NOTIFY body:deviceInfo]; + + +} + +RCT_EXPORT_METHOD(getDeviceInfo:(nonnull NSString*)mac){ + if ([self getHS2SWithMac:mac] != nil) { + + [[self getHS2SWithMac:mac] commandGetHS2SDeviceInfo:^(NSDictionary *deviceInfo) { + + + NSDictionary* deviceInfoDic = @{kMAC_KEY:mac, + kTYPE_KEY:kTYPE_HS2S, + kACTION_KEY:ACTION_GET_HS2S_DEVICE_INFO, + HS2S_DEVICE_BATTERY:[deviceInfo valueForKey:@"Battary"], + HS2S_DEVICE_UNIT:[deviceInfo valueForKey:@"Unit"], + HS2S_DEVICE_USER_COUNT:[deviceInfo valueForKey:@"UserCount"] + }; + [self sendEventWithName:EVENT_NOTIFY body:deviceInfoDic]; + + } DiaposeErrorBlock:^(HS2SDeviceError errorID) { + + [self sendHS2SErrorCode:errorID mac:mac]; + }]; + + } +} + +RCT_EXPORT_METHOD(getBattery:(nonnull NSString*)mac){ + if ([self getHS2SWithMac:mac] != nil) { + + [[self getHS2SWithMac:mac]commandGetHS2SBattery:^(NSNumber *battary) { + + NSDictionary *deviceInfo = @{kMAC_KEY:mac,kTYPE_KEY:kTYPE_HS2S,kACTION_KEY:ACTION_BATTARY_HS,BATTERY_HS:battary}; + + [self sendEventWithName:EVENT_NOTIFY body:deviceInfo]; + + + } DiaposeErrorBlock:^(HS2SDeviceError errorID) { + + [self sendHS2SErrorCode:errorID mac:mac]; + + }]; + + } +} +RCT_EXPORT_METHOD(setUnit:(nonnull NSString*)mac :(nonnull NSNumber*)unit){ + + + if ([self getHS2SWithMac:mac] != nil) { + + HSUnit tempUnit; + + switch ([unit intValue]) { + case 1: + tempUnit=HSUnit_Kg; + break; + case 2: + tempUnit=HSUnit_LB; + break; + case 3: + tempUnit=HSUnit_ST; + break; + default: + tempUnit=HSUnit_Kg; + break; + } + + + __weak typeof(self) weakSelf = self; + + [[self getHS2SWithMac:mac] commandSetHS2SUnit:tempUnit result:^(BOOL result) { + + [weakSelf sendEventWithName:EVENT_NOTIFY body:@{ + + kMAC_KEY:mac, + + kTYPE_KEY:kTYPE_HS2S, + + kACTION_KEY:ACTION_SET_HS2S_UNIT, + + HS2S_SET_RESULT:[NSNumber numberWithBool:result] + + }]; + + } DisposeErrorBlock:^(HS2SDeviceError errorID) { + + [self sendHS2SErrorCode:errorID mac:mac]; + + }]; + + } + +} + +RCT_EXPORT_METHOD(getUserInfo:(nonnull NSString*)mac){ + + if ([self getHS2SWithMac:mac] != nil) { + + __weak typeof(self) weakSelf = self; + + [[self getHS2SWithMac:mac]commandGetHS2SUserInfo:^(NSDictionary *userInfo) { + + + NSMutableArray*tempUserArray=[userInfo valueForKey:@"UserInfo"]; + + NSMutableArray*resultArray=[NSMutableArray array]; + + + if (tempUserArray>0) { + + for (int i=0; i0) { + + for (int i=0; i0) { + + for (int i=0; i