https://github.com/xtravision-ai/xtravision-react-native
React Native SDK for XtraVision
https://github.com/xtravision-ai/xtravision-react-native
android-app ios-app react-native
Last synced: about 1 year ago
JSON representation
React Native SDK for XtraVision
- Host: GitHub
- URL: https://github.com/xtravision-ai/xtravision-react-native
- Owner: xtravision-ai
- License: mit
- Created: 2022-08-30T13:34:35.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-01-16T09:39:47.000Z (over 2 years ago)
- Last Synced: 2025-03-28T08:01:39.294Z (over 1 year ago)
- Topics: android-app, ios-app, react-native
- Language: TypeScript
- Size: 3.2 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# xtravision-react-native
"xtravision-react-native" SDK allows you to quickly and easily use the [xtravision.ai](https://xtravision.ai/) APIs via React Native.
## Installation (RN >= 0.71)
Use the following command to install SDK and its dependencies.
```sh
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:
```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
```js
// 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 (
{hasPermission ? (
<>
>
) : (
<>
App don't have Camera Permission
>
)}
);
}
```
> 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
---