1.0.0 • Published 11 months ago

rn-mtbeaconplus v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

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.