Integration Guide

React Native

Cross-platform capture for React Native apps. Bridge-free implementation.

15 minIntermediate
1

Install SDK

npm install @immutis/react-native

# or
yarn add @immutis/react-native
2

Configure

// ImmutisProvider wrapping your app
import { ImmutisProvider } from '@immutis/react-native'

function App() {
  return (
    <ImmutisProvider apiKey="your_api_key">
      <YourApp />
    </ImmutisProvider>
  )
}
3

Request permissions

Add to app.json:

{
  "expo": {
    "ios": {
      "infoPlist": {
        "NSCameraUsageDescription": "Immutis needs camera access for evidence capture",
        "NSLocationWhenInUseUsageDescription": "Immutis records location with evidence"
      }
    }
  }
}

Or request at runtime using expo-camera or react-native-camera.
4

Capture

import { useImmutis } from '@immutis/react-native'

function CaptureScreen() {
  const { capture, isCapturing } = useImmutis()
  
  const handleCapture = async () => {
    const evidence = await capture({
      type: 'photo',
      location: true,
      timestamp: true,
      hardwareAttestation: true
    })
    
    console.log('Sealed:', evidence.hash)
  }
  
  return (
    <Button onPress={handleCapture} disabled={isCapturing}>
      {isCapturing ? 'Capturing...' : 'Capture Evidence'}
    </Button>
  )
}
5

Verify

import { useImmutis } from '@immutis/react-native'

function EvidenceDetailScreen({ evidenceId }) {
  const { verify } = useImmutis()
  
  useEffect(() => {
    const check = async () => {
      const result = await verify(evidenceId, ['sha256', 'hardware'])
      console.log('Valid:', result.valid)
    }
    check()
  }, [evidenceId])
  
  // ... render verification status
}

Requirements

  • React Native 0.70+
  • iOS 12.0+ / Android API 26+