The Trinsic React Native UI Library provides ways to launch verification sessions directly from your React Native application.

Trinsic React Native UI Library

Version
Build Status

The Trinsic React Native UI Library provides ways to launch verification sessions directly from your React Native application. If you're using Expo we recommend you use our Expo library.

This library must be paired with an api library as part of a full integration.

Currently, only iOS and Android are supported.

Installation

npm install @trinsic/react-native-ui

Setup

Choose a Custom Scheme

This library makes use of Android Custom Tabs on Android and ASWebAuthenticationSession on iOS.

Therefore, you must register a custom scheme against your app on both Android and iOS in order for the library to be able to capture the results of a session.

This custom scheme can be the same between iOS and Android, but should be globally unique to your organization and application.

An example of a good custom scheme might be acme-corp-shopping-app-trinsic.

iOS

Configure your iOS Podfile to use static libraries

If you're not already using static libraries, add the following line to your podfile to be able to use our Swift module:

use_frameworks! :linkage => :static

Add the scheme to your app's URLs

Select your app's target and on the info tab in XCode add the scheme you selected.

Android

Adjust manifest

[!IMPORTANT]
If your app's AndroidManifest.xml specifies a custom android:taskAffinity property for its main activity (which is uncommon), you will need to perform some additional setup.

Place the following snippet in your app's AndroidManifest.xml, replacing [YOURCUSTOMSCHEME] with the scheme you chose above

<activity
    android:name="id.trinsic.android.ui.CallbackActivity"
    android:exported="true">
    <intent-filter android:label="trinsic">
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data android:scheme="[YOURCUSTOMSCHEME]" />
    </intent-filter>
</activity>

Set SDK minVersion

We require the minimum SDK version of 26. Adjust in your build.grade file the minSDK property to 26 if not already 26 or higher.

Usage

import { launchSession } from '@trinsic/react-native-ui';

// ...

const launchUrl = ''; //get this from your backend creating a session using the createSession API
const result = await launchSession(
  launchUrl,
  'yourAppsScheme://your-callback-url'
);

License

MIT