callstack / react-native-socket-mobile

React Native module for the Socket Mobile SDK.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

react-native-socket-mobile

CircleCI Coverage Status npm version License: MIT

This native module is a wrapper over the Socket Mobile SDK. If you have a developer account and valid credentials, you will be able to use your scanner within your React Native application.

Table of contents

Installation

Add the library using yarn or npm:

yarn add react-native-socket-mobile

iOS

This library depends on the SKTCaptureObjC SDK. We will be using Cocoapods.

  1. Install CocoaPods on your marchine.
  2. Within you application, go to the ios/ directory and run pod init
  3. Replace the content within your brand-new Podfile with:
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '9.0'

target 'YourAppName' do
  node_modules_path = '../node_modules'

  pod 'yoga', path: "#{node_modules_path}/react-native/ReactCommon/yoga/yoga.podspec"
  pod 'React', path: "#{node_modules_path}/react-native"

  pod 'ReactNativeSocketMobile', path: "#{node_modules_path}/react-native-socket-mobile/ios"
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "React"
      target.remove_from_project
    end
  end
end
  1. Run pod install.
  2. Open <YOUR_PROJECT_NAME>.xcworkspace file (you'll need to use it as a starting file from now on).
  3. Important: You need to add the following to your XCode project:
Info
Supported external accessory protocols com.socketmobile.chs

Android

No support for now.

API Reference

start({ bundleId: string, developerId: string, appKey: string }): Promise<boolean | Error>

Start listening for a scanner to be connected.

start = async () => {
  try {
    await SocketMobile.start({
      bundleId,
      developerId,
      appKey,
    });
  } catch (e) {
    // Handle the error
  }
};

stop() : Promise<boolean | Error>

Stop connection to the scanner.

stop = async () => {
  try {
    await SocketMobile.stop();
  } catch (e) {
    // Handle the error
  }
};

updateStatusFromDevices() : Promise<string>

Get current list of connected devices.

updateStatusFromDevices = async () => {
  const status = await SocketMobile.updateStatusFromDevices();
};

setDataListener(callback: (result: { data: string }): void

Listens for scanning results (after we got connected to the device).

SocketMobile.setDataListener(({ data }) => {
  this.setState({ lastScan: data });
});

setDeviceStatusListener(callback: (status: 'connected'|'disconnected'): void

Listen for scanner connection changes.

SocketMobile.setDeviceStatusListener(status => {
  if (status === 'connected') {
    this.setState({ status: 'connected' });
  } else {
    this.setState({ status: 'disconnected' });
  }
});

clearAllListeners() : void

Remove all listeners, typically called in componentWillUmmount.

componentWillUnmount() {
  SocketMobile.clearAllListeners();
}

About

React Native module for the Socket Mobile SDK.


Languages

Language:JavaScript 46.7%Language:Objective-C 46.6%Language:Ruby 6.6%