0.1.5 • Published 4 years ago

@lg2/react-native-eddystone v0.1.5

Weekly downloads
6
License
MIT
Repository
github
Last release
4 years ago

react-native-eddystone

A simple Eddystone™ implementation in React Native for both iOS and Android. The library also include an opinionated beacon manager class that enables simple beacon telemetry linking, caching and expiration.

Installation

$ npm install @lg2/react-native-eddystone --save

If your React Native version is below 0.60

$ react-native link @lg2/react-native-eddystone

Manual installation (React Native < 0.60)

iOS

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modules@lg2react-native-eddystone and add Eddystone.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libEddystone.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)

Alternatively, you can use Cocoapods like so:

pod 'Eddystone', :path => '../node_modules/@lg2/react-native-eddystone/ios'

Android

  1. Open up android/app/src/main/java/[...]/MainApplication.java

    • Add import com.lg2.eddystone.EddystonePackage; to the imports at the top of the file
    • Add new EddystonePackage() to the list returned by the getPackages() method
  2. Append the following lines to android/settings.gradle:

    include ':@lg2_react-native-eddystone'
    project(':@lg2_react-native-eddystone').projectDir = new File(rootProject.projectDir, '../node_modules/@lg2/react-native-eddystone/android')
  3. Insert the following lines inside the dependencies block in android/app/build.gradle:

    implementation project(':@lg2_react-native-eddystone')

Usage

This is a very simple example of how to listen to UID broadcastz from Eddystone beacons. For more examples, refer to the examples folder.

import Eddystone from "@lg2/react-native-eddystone";

// bind a callback when detecting a uid frame
Eddystone.addListener("onUIDFrame", function(beacon) {
  console.log(beacon);
});

// start listening for beacons
Eddystone.startScanning();

// stop listening for beacons
Eddystone.stopScanning();

API

MethodArgumentsDescription
startScanningnoneStarts the device's bluetooth manager and looks for Eddystone beacons.
stopScanningnoneStop the device's bluetooth manager from listening for Eddystone beacons.
addListenerevent: stringcallback: FunctionRegisters a callback function to an event.
removeListenerevent: stringcallback: FunctionUnregisters a callback function to an event.
ManagerclassA simple beacon telemetry linking, caching and expiration class built on top of the current API. See below.

Events

There are many events that can be subscribed to using the library's addListener method.

NameParametersDescription
onUIDFramebeacon: BeaconDataThe device received information from a beacon broadcasting UID data.
onEIDFramebeacon: BeaconDataThe device received information from a beacon broadcasting EID data.
onURLFrameurl: URLDataThe device received a Url broadcasted by a beacon.
onTelemetryFrametelemetry: TelemetryDataThe device received telemetry information from a beacon.
onStateChangedstate: stringThe device's bluetooth manager state has changed. (iOS only)

Data Structures

BeaconData

{
  id: string,
  uid: string,
  rssi: number,
  txPower: number
}

TelemetryData

{
  uid: string,
  voltage: number,
  temp: number
}

URLData

{
  uid: string,
  url: string
}

Manager

API

MethodArgumentsDescription
constructorexpiration: numberCreates a instance of the manager with a specific expiration time for beacons.
startnoneStarts the device's bluetooth manager and looks for Eddystone beacons.
stopnoneStop the device's bluetooth manager from listening for Eddystone beacons.
hasuid: stringDetermines whether or not the beacon exists within the manager or not.
addBeacondata: BeaconDataAdds a beacon to the manager. This is done automatically when the start method is called but you're allowed to do it manually at any point.
addUrlbeacon: Beacon data: URLDataUpdates a beacon to set its URL. This is done automatically when the start method is called but you're allowed to do it manually at any point.
addTelemetrybeacon: Beacon data: TelemetryDataUpdates a beacon to set its telemetry data. This is done automatically when the start method is called but you're allowed to do it manually at any point.
addListenerevent: stringcallback: FunctionRegisters a callback function to an event.
removeListenerevent: stringcallback: FunctionUnregisters a callback function to an event.

Events

Events that can be subscribed using the manager's addListener method.

NameParametersDescription
onBeaconAddedbeacon: BeaconThe manager received information from a new beacon broadcasting UID or EID data.
onBeaconUpdatedbeacon: BeaconThe manager received information from a beacon broadcasting a URL or Telemetry data.
onBeaconExpiredbeacon: BeaconThe manager has not received information from a beacon within the ammount of millisecond set by the expiration value.

Beacon

API

MethodArgumentsDescription
constructordata: BeaconDatamanager: ManagerCreates a instance of a beacon from data and manager
setExpirationtime: numberSets the beacon expiration. This is done automatically by the manager but you're allowed to do it manually at any point.
getDistancenoneReturns the approximative distance in meters from the device.
0.1.5

4 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago