rn-mtbeaconplus
v1.0.0
Published
A React Native module for supporting iOS and Android MTBeaconPlus devices. The MTBeaconPlus is a versatile Bluetooth Low Energy (BLE) beacon designed for indoor positioning and asset tracking. It offers high accuracy, long battery life, and easy integrati
Downloads
13
Maintainers
Readme
rn-mtbeaconplus
React Native module for Bluetooth Low Energy (BLE) scanning and device discovery.
Table of Contents
- Installation
- Usage/Examples
- Method & Events
- Authors
- Contributing
Documentation
Methods
- startScan(listener: (devices: ?Collection) => void) - Starts scanning for nearby devices.
- stopScan() Stops the ongoing scan.
- state(): Promise<$Keys> Gets the current Bluetooth state.
- onStateChange(listener: (state: ?String) => void) Subscribes to state change events.
- offStateChange() Unsubscribes from state change events.
- destroy() Destroys the manager instance.
Events
- ScanEvent: Triggered when new devices are scanned.
- StateChangeEvent: Triggered when the Bluetooth state changes.
- RestoreStateEvent: Triggered when the internal state is restored.
- DisconnectionEvent: Triggered when a device disconnects.
Installation
Installation with npm:
npm i rn-mtbeaconplus --save
yarn add rn-mtbeaconplus
Android Installation : To link the native module:
react-native link rn-mtbeaconplus
iOS Installation :
pod 'react-native-mtbeacon-plus-swift', :path => '../node_modules/rn-mtbeaconplus'
Usage/Examples
import React, { useEffect } from 'react';
// Importing from your package
import { useMTBeaconPlusManager } from 'rn-mtbeaconplus';
const BeaconScanner = () => {
const { startScan, stopScan, getState, onStateChange, offStateChange } = useMTBeaconPlusManager();
useEffect(() => {
// Fetch the initial Bluetooth state and log it
getState().then((state) => {
console.log('Initial Bluetooth State:', state);
});
// Subscribe to state changes and log them
onStateChange((newState) => {
console.log('Bluetooth State Changed:', newState);
});
// Cleanup on unmount
return () => {
offStateChange();
stopScan();
};
}, []);
const handleStartScan = () => {
// Start scanning and log the scanned devices
startScan((scannedDevices) => {
console.log('Scanned Devices:', scannedDevices);
});
};
const handleStopScan = () => {
stopScan();
console.log('Scan stopped');
};
// Automatically start scanning when the component mounts
useEffect(() => {
handleStartScan();
return () => {
handleStopScan();
};
}, []);
return null;
};
export default BeaconScanner;
Troubleshooting
- Ensure that your app has the necessary permissions to access Bluetooth.
- Check if the device supports BLE functionality.
- Verify that the native module is properly linked and compiled.
Authors
Contributing
Contributions are welcome! Please feel free to submit pull requests or issues.