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/HS2Module.m | 277 +++++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2Module.m (limited to 'libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2Module.m') diff --git a/libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2Module.m b/libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2Module.m new file mode 100644 index 0000000..376f2f3 --- /dev/null +++ b/libs/ihealth-sdk/ios/ReactNativeIOSLibrary/HS2Module.m @@ -0,0 +1,277 @@ +// +// HS2Module.m +// ReactNativeIOSLibrary +// +// Created by jing on 2018/11/26. +// Copyright © 2018年 daiqingquan. All rights reserved. +// + +#import "HS2Module.h" +#import "HSProfileModule.h" +#import "HSMacroFile.h" +#import "HS2Controller.h" +#import "HS2.h" +#import "iHealthDeviceManagerModule.h" +#import "ManageDeviceController.h" + +#define EVENT_NOTIFY @"HS2.MODULE.NOTIFY" + +@implementation HS2Module + +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; +} + +-(HS2 *)getHS2WithMac:(NSString *)mac{ + HS2Controller *controller = [HS2Controller shareIHHs2Controller]; + NSArray *hs2DeviceArray = [controller getAllCurrentHS2Instace]; + for (HS2 *tempHS2 in hs2DeviceArray) { + if ([mac isEqualToString:tempHS2.deviceID]){ + return tempHS2; + break; + } + } + return nil; +} + +#pragma mark +#pragma mark - Method + + +#pragma mark-获取连接设备 +RCT_EXPORT_METHOD(getAllConnectedDevices){ + + + NSArray*hs2array= [[HS2Controller shareIHHs2Controller] getAllCurrentHS2Instace]; + + NSMutableArray*deviceMacArray=[NSMutableArray array]; + + for (int i=0; i<[hs2array count]; i++) { + + HS2*hs2=[hs2array objectAtIndex:i]; + + [deviceMacArray addObject:hs2.deviceID]; + + } + + NSDictionary* deviceInfo = @{@"action":@"action_get_all_connected_devices",@"devices":deviceMacArray}; + [self sendEventWithName:EVENT_NOTIFY body:deviceInfo]; + + +} + +RCT_EXPORT_METHOD(getBattery:(nonnull NSString*)mac){ + if ([self getHS2WithMac:mac] != nil) { + + [[self getHS2WithMac:mac]commandGetHS2Battery:^(NSNumber *battary) { + + NSDictionary *deviceInfo = @{@"mac":mac,@"action":ACTION_BATTARY_HS,BATTERY_HS:battary}; + + [self sendEventWithName:EVENT_NOTIFY body:deviceInfo]; + + } DiaposeErrorBlock:^(HS2DeviceError errorID) { + + }]; + + } +} +RCT_EXPORT_METHOD(getOfflineData:(nonnull NSString*)mac){ + if ([self getHS2WithMac:mac] != nil) { + + NSLog(@"上传离线数据"); + + [[self getHS2WithMac:mac]commandHS2TransferMemorryData:^(NSDictionary *startDataDictionary) { + + } DisposeProgress:^(NSNumber *progress) { + + } MemorryData:^(NSArray *historyDataArray) { + if(historyDataArray != nil){ + + if(historyDataArray.count){ + + NSMutableArray*dataArray=[NSMutableArray array]; + + for (int i=0; i