Node's Pocket Monsters

    react-native-nearby-api-mrousavy
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.13 • Public • Published

    react-native-nearby-api npm version

    Getting started

    $ yarn add react-native-nearby-api-mrousavy or $ npm i react-native-nearby-api-mrousavy

    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

    Important: Ask for Bluetooth permissions first using react-native-permissions!

    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.

    Install

    npm i react-native-nearby-api-mrousavy

    DownloadsWeekly Downloads

    2

    Version

    1.0.13

    License

    ISC

    Unpacked Size

    195 kB

    Total Files

    26

    Last publish

    Collaborators

    • mrousavy