3.2.2 • Published 9 months ago

@xtravision/xtravision-react-native v3.2.2

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

xtravision-react-native

"xtravision-react-native" SDK allows you to quickly and easily use the xtravision.ai APIs via React Native.

Installation (RN >= 0.71)

Use the following command to install SDK and its dependencies.

yarn add react-native-reanimated@^2.10.0 react-native-vision-camera@^2.15.4 @xtravision/xtravision-react-native@3.2.2

use SDK 2.9.x version for RN <= 0.70

Add the required plugin to your babel.config.js:

module.exports = {
    plugins: [
        [
            'react-native-reanimated/plugin',
            {
                globals: ['__scanPoseLandmarks'],
            },
        ],
        // others
    ]
}

Note: You have to restart metro-bundler for changes in the babel.config.js file to take effect. Best practice to start metro server with --reset-cache

Usage

// Import required things
import { RequestCameraPermission, Assessment} from '@xtravision/xtravision-react-native';
import {CameraPermissionStatus} from '@xtravision/xtravision-react-native';

export default function App() {
  const [hasPermission, setHasPermission] = React.useState(false);

  React.useEffect(() => {
    (async () => {
      const status = await RequestCameraPermission();
      setHasPermission(status === CameraPermissionStatus.AUTHORIZED);
    })();
  }, []);

  
  // Callback to handle server response
  function onServerResponse(serverResponse: any): void {
    if (serverResponse.errors.length) {
      console.error('Server Error Response:', serverResponse.errors);
      return;
    }

    console.log('Server Data:', serverResponse.data);
  }

  // required prop:
  const authToken = '__AUTH-TOKEN__'; //IMP: user specific auth token
  const assessmentName = '__ASSESSMENT_NAME__';
  const cameraPosition = 'back'; // front or back


  const connectionData = {
    assessment_name: assessmentName,
    auth_token: authToken,
    assessment_config: {},  // check document for more details
    user_config:{}, // check document for more details
  };

  const requestData = {
    isPreJoin: false
  }
  
  const libData = {
    onServerResponse,
    cameraPosition,
  }

  return (
    <View style={styles.container}>
      {hasPermission ? (
        <>
          <Assessment
            connectionData={connectionData}
            requestData={requestData}
            libData={libData}
          />
        </>
      ) : (
        <>
          <Text>App don't have Camera Permission</Text>
        </>
      )}
    </View>
  );
}

Tested with Node:v16.14.0 and react-native: v0.71.0 Make sure you have added kotlinVersion = "1.7.0" (under buildToolsVersion) to android/build.gradle Currently it's supporting only android devices only

License

MIT


3.2.2

9 months ago

3.2.1

9 months ago

3.2.0

9 months ago

3.1.0

10 months ago

3.0.0-rc.1

10 months ago

2.9.0

10 months ago

2.8.0

10 months ago

2.7.0

1 year ago

2.5.0

1 year ago

2.6.0

1 year ago

2.3.4

1 year ago

2.3.3

1 year ago

2.3.2

1 year ago

2.3.1

1 year ago

2.3.0

1 year ago

2.2.0

1 year ago

2.1.0

1 year ago

2.0.0

1 year ago

1.2.0

1 year ago

1.1.0

1 year ago

0.2.0

2 years ago

0.1.0

2 years ago