react-native-ble-manager 8.7.0 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +96 -47
- package/android/.gradle/7.4/checksums/checksums.lock +0 -0
- package/android/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock +0 -0
- package/android/.gradle/7.4/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/7.4/executionHistory/executionHistory.bin +0 -0
- package/android/.gradle/7.4/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/7.4/fileChanges/last-build.bin +0 -0
- package/android/.gradle/7.4/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/7.4/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/7.4/fileHashes/resourceHashesCache.bin +0 -0
- package/android/.gradle/7.4/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
- package/android/.gradle/file-system.probe +0 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.idea/.name +1 -0
- package/android/.idea/compiler.xml +6 -0
- package/android/.idea/gradle.xml +18 -0
- package/android/.idea/jarRepositories.xml +40 -0
- package/android/.idea/misc.xml +10 -0
- package/android/.idea/vcs.xml +6 -0
- package/android/build.gradle +17 -17
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
- package/android/gradle.properties +3 -1
- package/android/gradlew +234 -0
- package/android/gradlew.bat +89 -0
- package/android/local.properties +8 -0
- package/android/src/main/java/it/innove/BleManager.java +33 -17
- package/android/src/main/java/it/innove/LegacyScanManager.java +33 -28
- package/android/src/main/java/it/innove/LollipopPeripheral.java +66 -65
- package/android/src/main/java/it/innove/LollipopScanManager.java +52 -25
- package/android/src/main/java/it/innove/Peripheral.java +889 -837
- package/android/src/main/java/it/innove/ScanManager.java +24 -23
- package/dist/cjs/index.d.ts +147 -0
- package/dist/cjs/index.js +487 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/types.d.ts +311 -0
- package/dist/cjs/types.js +110 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/esm/index.d.ts +147 -0
- package/dist/esm/index.js +471 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types.d.ts +311 -0
- package/dist/esm/types.js +107 -0
- package/dist/esm/types.js.map +1 -0
- package/ios/BleManager.m +87 -110
- package/ios/BleManager.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/package.json +31 -4
- package/src/index.ts +569 -0
- package/src/types.ts +336 -0
- package/.github/FUNDING.yml +0 -3
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
- package/BleManager.js +0 -427
- package/index.d.ts +0 -168
package/ios/BleManager.m
CHANGED
|
@@ -82,21 +82,17 @@ bool hasListeners;
|
|
|
82
82
|
|
|
83
83
|
- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error {
|
|
84
84
|
NSString *key = [self keyForPeripheral: peripheral andCharacteristic:characteristic];
|
|
85
|
-
RCTResponseSenderBlock readCallback = [readCallbacks objectForKey:key];
|
|
86
85
|
|
|
87
86
|
if (error) {
|
|
88
87
|
NSLog(@"Error %@ :%@", characteristic.UUID, error);
|
|
89
|
-
|
|
90
|
-
readCallback(@[error, [NSNull null]]);
|
|
91
|
-
[readCallbacks removeObjectForKey:key];
|
|
92
|
-
}
|
|
88
|
+
[self invokeAndClearDictionary:readCallbacks withKey:key usingParameters:@[error, [NSNull null]]];
|
|
93
89
|
return;
|
|
94
90
|
}
|
|
95
91
|
NSLog(@"Read value [%@]: (%lu) %@", characteristic.UUID, [characteristic.value length], characteristic.value);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
[readCallbacks
|
|
92
|
+
|
|
93
|
+
NSMutableArray* peripheralReadCallbacks = [readCallbacks objectForKey:key];
|
|
94
|
+
if (peripheralReadCallbacks != NULL) {
|
|
95
|
+
[self invokeAndClearDictionary:readCallbacks withKey:key usingParameters:@[[NSNull null], ([characteristic.value length] > 0) ? [characteristic.value toArray] : [NSNull null]]];
|
|
100
96
|
} else {
|
|
101
97
|
if (hasListeners) {
|
|
102
98
|
[self sendEventWithName:@"BleManagerDidUpdateValueForCharacteristic" body:@{@"peripheral": peripheral.uuidAsString, @"characteristic":characteristic.UUID.UUIDString, @"service":characteristic.service.UUID.UUIDString, @"value": ([characteristic.value length] > 0) ? [characteristic.value toArray] : [NSNull null]}];
|
|
@@ -118,27 +114,25 @@ bool hasListeners;
|
|
|
118
114
|
NSString *key = [self keyForPeripheral: peripheral andCharacteristic:characteristic];
|
|
119
115
|
|
|
120
116
|
if (characteristic.isNotifying) {
|
|
121
|
-
|
|
122
|
-
if (
|
|
117
|
+
NSMutableArray* peripheralNotificationCallbacks = [notificationCallbacks objectForKey:key];
|
|
118
|
+
if (peripheralNotificationCallbacks != nil) {
|
|
123
119
|
if (error) {
|
|
124
|
-
|
|
120
|
+
[self invokeAndClearDictionary:notificationCallbacks withKey:key usingParameters:@[error]];
|
|
125
121
|
} else {
|
|
126
122
|
NSLog(@"Notification began on %@", characteristic.UUID);
|
|
127
|
-
|
|
123
|
+
[self invokeAndClearDictionary:notificationCallbacks withKey:key usingParameters:@[]];
|
|
128
124
|
}
|
|
129
|
-
[notificationCallbacks removeObjectForKey:key];
|
|
130
125
|
}
|
|
131
126
|
} else {
|
|
132
127
|
// Notification has stopped
|
|
133
|
-
|
|
134
|
-
if (
|
|
128
|
+
NSMutableArray* peripheralStopNotificationCallbacks = [stopNotificationCallbacks objectForKey:key];
|
|
129
|
+
if (peripheralStopNotificationCallbacks != nil) {
|
|
135
130
|
if (error) {
|
|
136
|
-
|
|
131
|
+
[self invokeAndClearDictionary:stopNotificationCallbacks withKey:key usingParameters:@[error]];
|
|
137
132
|
} else {
|
|
138
133
|
NSLog(@"Notification ended on %@", characteristic.UUID);
|
|
139
|
-
|
|
134
|
+
[self invokeAndClearDictionary:stopNotificationCallbacks withKey:key usingParameters:@[]];
|
|
140
135
|
}
|
|
141
|
-
[stopNotificationCallbacks removeObjectForKey:key];
|
|
142
136
|
}
|
|
143
137
|
}
|
|
144
138
|
if (hasListeners) {
|
|
@@ -152,17 +146,17 @@ bool hasListeners;
|
|
|
152
146
|
- (NSString *) centralManagerStateToString: (int)state
|
|
153
147
|
{
|
|
154
148
|
switch (state) {
|
|
155
|
-
case
|
|
149
|
+
case CBManagerStateUnknown:
|
|
156
150
|
return @"unknown";
|
|
157
|
-
case
|
|
151
|
+
case CBManagerStateResetting:
|
|
158
152
|
return @"resetting";
|
|
159
|
-
case
|
|
153
|
+
case CBManagerStateUnsupported:
|
|
160
154
|
return @"unsupported";
|
|
161
|
-
case
|
|
155
|
+
case CBManagerStateUnauthorized:
|
|
162
156
|
return @"unauthorized";
|
|
163
|
-
case
|
|
157
|
+
case CBManagerStatePoweredOff:
|
|
164
158
|
return @"off";
|
|
165
|
-
case
|
|
159
|
+
case CBManagerStatePoweredOn:
|
|
166
160
|
return @"on";
|
|
167
161
|
default:
|
|
168
162
|
return @"unknown";
|
|
@@ -192,12 +186,18 @@ bool hasListeners;
|
|
|
192
186
|
- (NSString *) periphalManagerStateToString: (int)state
|
|
193
187
|
{
|
|
194
188
|
switch (state) {
|
|
195
|
-
case
|
|
196
|
-
return @"
|
|
197
|
-
case
|
|
198
|
-
return @"
|
|
199
|
-
case
|
|
200
|
-
return @"
|
|
189
|
+
case CBManagerStateUnknown:
|
|
190
|
+
return @"unknown";
|
|
191
|
+
case CBManagerStateResetting:
|
|
192
|
+
return @"resetting";
|
|
193
|
+
case CBManagerStateUnsupported:
|
|
194
|
+
return @"unsupported";
|
|
195
|
+
case CBManagerStateUnauthorized:
|
|
196
|
+
return @"unauthorized";
|
|
197
|
+
case CBManagerStatePoweredOff:
|
|
198
|
+
return @"off";
|
|
199
|
+
case CBManagerStatePoweredOn:
|
|
200
|
+
return @"on";
|
|
201
201
|
default:
|
|
202
202
|
return @"unknown";
|
|
203
203
|
}
|
|
@@ -435,8 +435,8 @@ RCT_EXPORT_METHOD(connect:(NSString *)peripheralUUID callback:(nonnull RCTRespon
|
|
|
435
435
|
}
|
|
436
436
|
if (peripheral) {
|
|
437
437
|
NSLog(@"Connecting to peripheral with UUID : %@", peripheralUUID);
|
|
438
|
-
|
|
439
|
-
[
|
|
438
|
+
|
|
439
|
+
[self insertCallback:callback intoDictionary:connectCallbacks withKey:[peripheral uuidAsString]];
|
|
440
440
|
[manager connectPeripheral:peripheral options:nil];
|
|
441
441
|
|
|
442
442
|
} else {
|
|
@@ -475,10 +475,13 @@ RCT_EXPORT_METHOD(disconnect:(NSString *)peripheralUUID force:(BOOL)force callba
|
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
477
|
|
|
478
|
-
RCT_EXPORT_METHOD(checkState)
|
|
478
|
+
RCT_EXPORT_METHOD(checkState:(nonnull RCTResponseSenderBlock)callback)
|
|
479
479
|
{
|
|
480
480
|
if (manager != nil){
|
|
481
481
|
[self centralManagerDidUpdateState:self.manager];
|
|
482
|
+
|
|
483
|
+
NSString *stateName = [self centralManagerStateToString:self.manager.state];
|
|
484
|
+
callback(@[stateName]);
|
|
482
485
|
}
|
|
483
486
|
}
|
|
484
487
|
|
|
@@ -486,12 +489,8 @@ RCT_EXPORT_METHOD(checkState)
|
|
|
486
489
|
{
|
|
487
490
|
NSString *errorStr = [NSString stringWithFormat:@"Peripheral connection failure: %@. (%@)", peripheral, [error localizedDescription]];
|
|
488
491
|
NSLog(@"%@", errorStr);
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
if (connectCallback) {
|
|
492
|
-
connectCallback(@[errorStr]);
|
|
493
|
-
[connectCallbacks removeObjectForKey:[peripheral uuidAsString]];
|
|
494
|
-
}
|
|
492
|
+
|
|
493
|
+
[self invokeAndClearDictionary:connectCallbacks withKey:[peripheral uuidAsString] usingParameters:@[errorStr]];
|
|
495
494
|
}
|
|
496
495
|
|
|
497
496
|
RCT_EXPORT_METHOD(write:(NSString *)deviceUUID serviceUUID:(NSString*)serviceUUID characteristicUUID:(NSString*)characteristicUUID message:(NSArray*)message maxByteSize:(NSInteger)maxByteSize callback:(nonnull RCTResponseSenderBlock)callback)
|
|
@@ -518,8 +517,8 @@ RCT_EXPORT_METHOD(write:(NSString *)deviceUUID serviceUUID:(NSString*)serviceUUI
|
|
|
518
517
|
CBCharacteristic *characteristic = [context characteristic];
|
|
519
518
|
|
|
520
519
|
NSString *key = [self keyForPeripheral: peripheral andCharacteristic:characteristic];
|
|
521
|
-
[
|
|
522
|
-
|
|
520
|
+
[self insertCallback:callback intoDictionary:writeCallbacks withKey:key];
|
|
521
|
+
|
|
523
522
|
RCTLogInfo(@"Message to write(%lu): %@ ", (unsigned long)[dataMessage length], [dataMessage hexadecimalString]);
|
|
524
523
|
if ([dataMessage length] > maxByteSize){
|
|
525
524
|
int dataLength = (int)dataMessage.length;
|
|
@@ -606,7 +605,7 @@ RCT_EXPORT_METHOD(read:(NSString *)deviceUUID serviceUUID:(NSString*)serviceUUID
|
|
|
606
605
|
CBCharacteristic *characteristic = [context characteristic];
|
|
607
606
|
|
|
608
607
|
NSString *key = [self keyForPeripheral: peripheral andCharacteristic:characteristic];
|
|
609
|
-
[
|
|
608
|
+
[self insertCallback:callback intoDictionary:readCallbacks withKey:key];
|
|
610
609
|
|
|
611
610
|
[peripheral readValueForCharacteristic:characteristic]; // callback sends value
|
|
612
611
|
}
|
|
@@ -620,7 +619,7 @@ RCT_EXPORT_METHOD(readRSSI:(NSString *)deviceUUID callback:(nonnull RCTResponseS
|
|
|
620
619
|
CBPeripheral *peripheral = [self findPeripheralByUUID:deviceUUID];
|
|
621
620
|
|
|
622
621
|
if (peripheral && peripheral.state == CBPeripheralStateConnected) {
|
|
623
|
-
[
|
|
622
|
+
[self insertCallback:callback intoDictionary:readRSSICallbacks withKey:[peripheral uuidAsString]];
|
|
624
623
|
[peripheral readRSSI];
|
|
625
624
|
} else {
|
|
626
625
|
callback(@[@"Peripheral not found or not connected"]);
|
|
@@ -635,7 +634,7 @@ RCT_EXPORT_METHOD(retrieveServices:(NSString *)deviceUUID services:(NSArray<NSSt
|
|
|
635
634
|
CBPeripheral *peripheral = [self findPeripheralByUUID:deviceUUID];
|
|
636
635
|
|
|
637
636
|
if (peripheral && peripheral.state == CBPeripheralStateConnected) {
|
|
638
|
-
[
|
|
637
|
+
[self insertCallback:callback intoDictionary:retrieveServicesCallbacks withKey:[peripheral uuidAsString]];
|
|
639
638
|
|
|
640
639
|
NSMutableArray<CBUUID *> *uuids = [NSMutableArray new];
|
|
641
640
|
for ( NSString *string in services ) {
|
|
@@ -665,7 +664,7 @@ RCT_EXPORT_METHOD(startNotification:(NSString *)deviceUUID serviceUUID:(NSString
|
|
|
665
664
|
CBCharacteristic *characteristic = [context characteristic];
|
|
666
665
|
|
|
667
666
|
NSString *key = [self keyForPeripheral: peripheral andCharacteristic:characteristic];
|
|
668
|
-
[
|
|
667
|
+
[self insertCallback:callback intoDictionary:notificationCallbacks withKey:key];
|
|
669
668
|
|
|
670
669
|
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
|
|
671
670
|
}
|
|
@@ -684,7 +683,7 @@ RCT_EXPORT_METHOD(stopNotification:(NSString *)deviceUUID serviceUUID:(NSString*
|
|
|
684
683
|
|
|
685
684
|
if ([characteristic isNotifying]){
|
|
686
685
|
NSString *key = [self keyForPeripheral: peripheral andCharacteristic:characteristic];
|
|
687
|
-
[
|
|
686
|
+
[self insertCallback:callback intoDictionary:stopNotificationCallbacks withKey:key];
|
|
688
687
|
[peripheral setNotifyValue:NO forCharacteristic:characteristic];
|
|
689
688
|
NSLog(@"Characteristic stopped notifying");
|
|
690
689
|
} else {
|
|
@@ -730,17 +729,15 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
|
|
|
730
729
|
NSLog(@"didWrite");
|
|
731
730
|
|
|
732
731
|
NSString *key = [self keyForPeripheral: peripheral andCharacteristic:characteristic];
|
|
733
|
-
|
|
732
|
+
NSMutableArray* peripheralWriteCallbacks = [writeCallbacks objectForKey:key];
|
|
734
733
|
|
|
735
|
-
if (
|
|
734
|
+
if (peripheralWriteCallbacks) {
|
|
736
735
|
if (error) {
|
|
737
736
|
NSLog(@"%@", error);
|
|
738
|
-
[writeCallbacks
|
|
739
|
-
writeCallback(@[error.localizedDescription]);
|
|
737
|
+
[self invokeAndClearDictionary:writeCallbacks withKey:key usingParameters:@[error.localizedDescription]];
|
|
740
738
|
} else {
|
|
741
739
|
if ([writeQueue count] == 0) {
|
|
742
|
-
[writeCallbacks
|
|
743
|
-
writeCallback(@[]);
|
|
740
|
+
[self invokeAndClearDictionary:writeCallbacks withKey:key usingParameters:@[]];
|
|
744
741
|
}else{
|
|
745
742
|
// Remove and write the queud message
|
|
746
743
|
NSData *message = [writeQueue objectAtIndex:0];
|
|
@@ -750,18 +747,14 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
|
|
|
750
747
|
|
|
751
748
|
}
|
|
752
749
|
}
|
|
753
|
-
|
|
750
|
+
|
|
754
751
|
}
|
|
755
752
|
|
|
756
753
|
|
|
757
754
|
- (void)peripheral:(CBPeripheral*)peripheral didReadRSSI:(NSNumber*)rssi error:(NSError*)error {
|
|
758
755
|
NSLog(@"didReadRSSI %@", rssi);
|
|
759
756
|
NSString *key = [peripheral uuidAsString];
|
|
760
|
-
|
|
761
|
-
if (readRSSICallback) {
|
|
762
|
-
readRSSICallback(@[[NSNull null], [NSNumber numberWithInteger:[rssi integerValue]]]);
|
|
763
|
-
[readRSSICallbacks removeObjectForKey:key];
|
|
764
|
-
}
|
|
757
|
+
[self invokeAndClearDictionary:readRSSICallbacks withKey:key usingParameters:@[[NSNull null], [NSNumber numberWithInteger:[rssi integerValue]]]];
|
|
765
758
|
}
|
|
766
759
|
|
|
767
760
|
|
|
@@ -776,14 +769,9 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
|
|
|
776
769
|
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.002 * NSEC_PER_SEC),
|
|
777
770
|
dispatch_get_main_queue(), ^(void){
|
|
778
771
|
// didFailToConnectPeripheral should have been called already if not connected by now
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
if (connectCallback) {
|
|
783
|
-
connectCallback(@[[NSNull null], [peripheral asDictionary]]);
|
|
784
|
-
[connectCallbacks removeObjectForKey:[peripheral uuidAsString]];
|
|
785
|
-
}
|
|
786
|
-
|
|
772
|
+
|
|
773
|
+
[self invokeAndClearDictionary:self->connectCallbacks withKey:[peripheral uuidAsString] usingParameters:@[[NSNull null], [peripheral asDictionary]]];
|
|
774
|
+
|
|
787
775
|
if (hasListeners) {
|
|
788
776
|
[self sendEventWithName:@"BleManagerConnectPeripheral" body:@{@"peripheral": [peripheral uuidAsString]}];
|
|
789
777
|
}
|
|
@@ -802,66 +790,36 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
|
|
|
802
790
|
NSString *peripheralUUIDString = [peripheral uuidAsString];
|
|
803
791
|
|
|
804
792
|
NSString *errorStr = [NSString stringWithFormat:@"Peripheral did disconnect: %@", peripheralUUIDString];
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
[connectCallbacks removeObjectForKey:peripheralUUIDString];
|
|
810
|
-
}
|
|
811
|
-
|
|
812
|
-
RCTResponseSenderBlock readRSSICallback = [readRSSICallbacks valueForKey:peripheralUUIDString];
|
|
813
|
-
if (readRSSICallback) {
|
|
814
|
-
readRSSICallback(@[errorStr]);
|
|
815
|
-
[readRSSICallbacks removeObjectForKey:peripheralUUIDString];
|
|
816
|
-
}
|
|
817
|
-
|
|
818
|
-
RCTResponseSenderBlock retrieveServicesCallback = [retrieveServicesCallbacks valueForKey:peripheralUUIDString];
|
|
819
|
-
if (retrieveServicesCallback) {
|
|
820
|
-
retrieveServicesCallback(@[errorStr]);
|
|
821
|
-
[retrieveServicesCallbacks removeObjectForKey:peripheralUUIDString];
|
|
822
|
-
}
|
|
793
|
+
|
|
794
|
+
[self invokeAndClearDictionary:connectCallbacks withKey:peripheralUUIDString usingParameters:@[errorStr]];
|
|
795
|
+
[self invokeAndClearDictionary:readRSSICallbacks withKey:peripheralUUIDString usingParameters:@[errorStr]];
|
|
796
|
+
[self invokeAndClearDictionary:retrieveServicesCallbacks withKey:peripheralUUIDString usingParameters:@[errorStr]];
|
|
823
797
|
|
|
824
798
|
NSArray* ourReadCallbacks = readCallbacks.allKeys;
|
|
825
799
|
for (id key in ourReadCallbacks) {
|
|
826
800
|
if ([key hasPrefix:peripheralUUIDString]) {
|
|
827
|
-
|
|
828
|
-
if (callback) {
|
|
829
|
-
callback(@[errorStr]);
|
|
830
|
-
[readCallbacks removeObjectForKey:key];
|
|
831
|
-
}
|
|
801
|
+
[self invokeAndClearDictionary:readCallbacks withKey:key usingParameters:@[errorStr]];
|
|
832
802
|
}
|
|
833
803
|
}
|
|
834
804
|
|
|
835
805
|
NSArray* ourWriteCallbacks = writeCallbacks.allKeys;
|
|
836
806
|
for (id key in ourWriteCallbacks) {
|
|
837
807
|
if ([key hasPrefix:peripheralUUIDString]) {
|
|
838
|
-
|
|
839
|
-
if (callback) {
|
|
840
|
-
callback(@[errorStr]);
|
|
841
|
-
[writeCallbacks removeObjectForKey:key];
|
|
842
|
-
}
|
|
808
|
+
[self invokeAndClearDictionary:writeCallbacks withKey:key usingParameters:@[errorStr]];
|
|
843
809
|
}
|
|
844
810
|
}
|
|
845
811
|
|
|
846
812
|
NSArray* ourNotificationCallbacks = notificationCallbacks.allKeys;
|
|
847
813
|
for (id key in ourNotificationCallbacks) {
|
|
848
814
|
if ([key hasPrefix:peripheralUUIDString]) {
|
|
849
|
-
|
|
850
|
-
if (callback) {
|
|
851
|
-
callback(@[errorStr]);
|
|
852
|
-
[notificationCallbacks removeObjectForKey:key];
|
|
853
|
-
}
|
|
815
|
+
[self invokeAndClearDictionary:notificationCallbacks withKey:key usingParameters:@[errorStr]];
|
|
854
816
|
}
|
|
855
817
|
}
|
|
856
818
|
|
|
857
819
|
NSArray* ourStopNotificationsCallbacks = stopNotificationCallbacks.allKeys;
|
|
858
820
|
for (id key in ourStopNotificationsCallbacks) {
|
|
859
821
|
if ([key hasPrefix:peripheralUUIDString]) {
|
|
860
|
-
|
|
861
|
-
if (callback) {
|
|
862
|
-
callback(@[errorStr]);
|
|
863
|
-
[stopNotificationCallbacks removeObjectForKey:key];
|
|
864
|
-
}
|
|
822
|
+
[self invokeAndClearDictionary:stopNotificationCallbacks withKey:key usingParameters:@[errorStr]];
|
|
865
823
|
}
|
|
866
824
|
}
|
|
867
825
|
|
|
@@ -908,11 +866,7 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
|
|
|
908
866
|
|
|
909
867
|
if ([latch count] == 0) {
|
|
910
868
|
// Call success callback for connect
|
|
911
|
-
|
|
912
|
-
if (retrieveServiceCallback) {
|
|
913
|
-
retrieveServiceCallback(@[[NSNull null], [peripheral asDictionary]]);
|
|
914
|
-
[retrieveServicesCallbacks removeObjectForKey:peripheralUUIDString];
|
|
915
|
-
}
|
|
869
|
+
[self invokeAndClearDictionary:retrieveServicesCallbacks withKey:peripheralUUIDString usingParameters:@[[NSNull null], [peripheral asDictionary]]];
|
|
916
870
|
[retrieveServicesLatches removeObjectForKey:peripheralUUIDString];
|
|
917
871
|
}
|
|
918
872
|
}
|
|
@@ -1048,4 +1002,27 @@ RCT_EXPORT_METHOD(requestMTU:(NSString *)deviceUUID mtu:(NSInteger)mtu callback:
|
|
|
1048
1002
|
return _instance;
|
|
1049
1003
|
}
|
|
1050
1004
|
|
|
1005
|
+
-(void) insertCallback:(nonnull RCTResponseSenderBlock)callback intoDictionary:(NSMutableDictionary *)dictionary withKey:(NSString *)key
|
|
1006
|
+
{
|
|
1007
|
+
NSMutableArray* peripheralCallbacks = [dictionary objectForKey:key];
|
|
1008
|
+
if (!peripheralCallbacks) {
|
|
1009
|
+
peripheralCallbacks = [NSMutableArray array];
|
|
1010
|
+
[dictionary setObject:peripheralCallbacks forKey:key];
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
[peripheralCallbacks addObject:callback];
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
-(void) invokeAndClearDictionary:(NSMutableDictionary *)dictionary withKey:(NSString *)key usingParameters:(NSArray *)parameters
|
|
1017
|
+
{
|
|
1018
|
+
NSMutableArray* peripheralCallbacks = [dictionary objectForKey:key];
|
|
1019
|
+
if (peripheralCallbacks) {
|
|
1020
|
+
for (RCTResponseSenderBlock callback in peripheralCallbacks) {
|
|
1021
|
+
callback(parameters);
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
[dictionary removeObjectForKey:key];
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1051
1028
|
@end
|
package/package.json
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-ble-manager",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "A BLE module for react native.",
|
|
5
|
-
"main": "BleManager",
|
|
6
|
-
"types": "./index.d.ts",
|
|
7
5
|
"repository": {
|
|
8
6
|
"type": "git",
|
|
9
7
|
"url": "https://github.com/innoveit/react-native-ble-manager.git"
|
|
@@ -24,8 +22,37 @@
|
|
|
24
22
|
"name": "Innove",
|
|
25
23
|
"url": "https://github.com/innoveit"
|
|
26
24
|
},
|
|
25
|
+
"main": "dist/cjs/index.js",
|
|
26
|
+
"types": "dist/esm/index.d.ts",
|
|
27
|
+
"module": "dist/esm/index.js",
|
|
28
|
+
"react-native": "src/index.ts",
|
|
29
|
+
"files": [
|
|
30
|
+
"/dist",
|
|
31
|
+
"/src",
|
|
32
|
+
"/android",
|
|
33
|
+
"!/android/build",
|
|
34
|
+
"/ios",
|
|
35
|
+
"/*.podspec"
|
|
36
|
+
],
|
|
27
37
|
"scripts": {
|
|
28
38
|
"version": "git add -A",
|
|
29
|
-
"
|
|
39
|
+
"clean": "rimraf dist",
|
|
40
|
+
"type:check": "tsc -p tsconfig.json --noEmit",
|
|
41
|
+
"prebuild": "npm run clean",
|
|
42
|
+
"build:cjs": "tsc --module commonjs --outDir dist/cjs",
|
|
43
|
+
"build:esm": "tsc --outDir dist/esm",
|
|
44
|
+
"build": "npm run build:esm && npm run build:cjs",
|
|
45
|
+
"watch": "npm run build --watch",
|
|
46
|
+
"prepare": "npm run build",
|
|
47
|
+
"preversion": "npm run build",
|
|
48
|
+
"postversion": "git push --follow-tags"
|
|
49
|
+
},
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"react-native": ">=0.60.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"react-native": "0.71.0",
|
|
55
|
+
"rimraf": "4.1.2",
|
|
56
|
+
"typescript": "4.9.5"
|
|
30
57
|
}
|
|
31
58
|
}
|