1.0.7-beta-2 • Published 6 years ago

@adrianso/react-native-nearby-api v1.0.7-beta-2

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

react-native-nearby-api npm version

Getting started

$ yarn add @adrianso/react-native-nearby-api or $ npm install @adrianso/react-native-nearby-api --save

Installation

This package supports Autolinking for React Native 0.60 and above.

iOS

  • cd ios/
    pod install
  • Build and run project

Android

There are no additional steps required for Android

Usage

See the example app for more detail and code examples.

  • Retrieve your API Keys from the Google Console iOS | Android
  • Add the correct permissions to the AndroidManifest.

    <!-- Include if wish to use BLE -->
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <!-- Include if wish to use audio -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
  • Add the Android API Key in the AndroidManifest .

    <meta-data
      android:name="com.google.android.nearby.messages.API_KEY"
      android:value="MY_API_KEY" />
  • The iOS API key will be supplied through the connect() method.

  • Add NSBluetoothPeripheralUsageDescription to the Info.plist
  • Add NSMicrophoneUsageDescription to the iOS project's Info.plist if using audio
import NearbyApi from "react-native-nearby-api";

const nearbyAPI = new NearbyAPI(true); // Use BLE only, no audio.

nearbyAPI.onConnected((message) => {
  console.log(message);
});

nearbyAPI.onDisconnected((message) => {
  console.log(message);
});

nearbyAPI.onFound((message) => {
  console.log("Message Found!");
  console.log(message);
});

nearbyAPI.onLost((message) => {
  console.log("Message Lost!");
  console.log(message);
});

// Android Only
nearbyAPI.onDistanceChanged((message, value) => {
  console.log("Distance Changed!");
  console.log(message, value);
});

// Android Only
nearbyAPI.onBLESignalChanged((message, value) => {
  console.log("BLE Signal Changed!");
  console.log(message, value);
});

nearbyAPI.onPublishSuccess((message) => {
  console.log(message);
});

nearbyAPI.onPublishFailed((message) => {
  console.log(message);
});

nearbyAPI.onSubscribeSuccess(() => {});

nearbyAPI.onSubscribeFailed(() => {});

// To connect from Google API Client
nearbyAPI.connect(API_KEY);

// To check if the nearby API is connected.
nearbyAPI.isConnected((connected, error) => {
  console.log(connected);
});

// To disconnect later
nearbyAPI.disconnect();

// To publish to nearby devices
nearbyAPI.publish("Hello World!");

// To check if the nearby API is publishing.
nearbyAPI.isPublishing((publishing, error) => {
  console.log(publishing);
});

// To subscribe to nearby devices broadcasting
nearbyAPI.subscribe();

// To check if the nearby API is subscribing.
nearbyAPI.isSubscribing((subscribing, error) => {
  console.log(subscribing);
});

// To unpublish
nearbyAPI.unpublish();

// To unsubscribe
nearbyAPI.unsubscribe();

Running the Example

  • Install the dependencies in the root folder

    yarn

Generate an API Key from the Google Developer Console

  1. Go to the Google Developers Console.
  2. Create or select a project to register your application with.
  3. Click Continue to Enable the API.
  4. On the Credentials page, create a new API Key. (No key restrictions are needed for this example)
  5. Copy/Paste your key in example/index.js and in the example AndroidManifest.xml

Android

  • To run the example app, the packager must have the projectRoots reordered for the example/ directory. In another terminal window:

yarn start --projectRoots <FULL-PATH-TO-REPO>/react-native-nearby-api/example,<FULL-PATH-TO-REPO>/react-native-nearby-api

yarn run:android

adb reverse tcp:8081 tcp:8081

iOS

  • cd example ios/
  • bundle exec pod install
  • Open example.xcworkspace
  • Add your IP to AppDelegate.m
  jsCodeLocation = [NSURL URLWithString:@"http://<IP-ADDRESS>:8081/index.bundle?platform=ios&dev=true"];
  • In another terminal window: yarn start
  • Run on device

    NOTE: If you receive a duplicate symbols for architecture error through Xcode, this is a known issue. A work around is to run ./renameLogger.sh after node_modules have been installed and you've attempted to run in Xcode.

1.0.8

6 years ago

1.0.7

6 years ago

1.0.7-beta-6

6 years ago

1.0.7-beta-4

6 years ago

1.0.7-beta-5

6 years ago

1.0.7-beta-2

6 years ago

1.0.7-beta-3

6 years ago

1.0.7-beta

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago