@indoor-track/ibeacon
Version:
Uma biblioteca React Native que fornece APIs nativas para escanear, detectar e obter informações de dispositivos iBeacon via Bluetooth Low Energy...
33 lines (26 loc) • 923 B
text/typescript
import {
TurboModuleRegistry,
NativeEventEmitter,
NativeModules,
Platform,
} from 'react-native';
import type { TurboModule } from 'react-native';
export interface IbeaconConfig {
scanDuration?: number; // em milissegundos
}
export interface Spec extends TurboModule {
multiply(a: number, b: number): Promise<number>;
startScan(config?: IbeaconConfig): Promise<string>;
stopScan(): Promise<null>;
checkPermissions(): Promise<boolean>;
isBleSupported(): Promise<boolean>;
}
// TurboModule seguro
const Ibeacon: Spec = TurboModuleRegistry.getEnforcing<Spec>('Ibeacon');
// ✅ NativeEventEmitter espera um objeto com `addListener/removeListener`
const emitterSource =
Platform.OS === 'android'
? NativeModules.Ibeacon || Ibeacon
: NativeModules.Ibeacon; // iOS usa NativeModules diretamente
export const IbeaconEventEmitter = new NativeEventEmitter(emitterSource);
export default Ibeacon;