Libraries

Truv Bridge is the client-side component that your users will interact with in order to link their accounts to Truv and allow you to access their accounts via the Truv API.

Truv Bridge will handle credential validation, multi-factor authentication, and error handling for each provider that we support. Bridge works across all modern browsers and platforms, including web, iOS, Android, as well as via React Native and mobile webviews, Flutter and Expo.

iOS

Swift SDK for iOS is available on Cocoa Pods: https://cocoapods.org/pods/truvsdk

Installation

Add TruvSDK pod :

use_frameworks!

target 'MyApp' do
    pod 'TruvSDK'
end

Usage

import TruvSDK

let truvBridgeView = TruvBridgeView(token: token, delegate: self)
view.addSubview(truvBridgeView)
// add constraints if needed

Android

Kotlin SDK for Android is available on JitPack: https://jitpack.io/#truvhq/android-sdk

Installation

Step 1. Add the JitPack repository to your project build.gradle file

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}

Step 2. Add the dependency to your build.gradle file:

implementation 'com.github.truvhq:android-sdk:0.2'

Usage

The TruvBridgeView is a View that you can integrate into your app's flow:

<?xml version="1.0" encoding="utf-8"?>
<com.truv.TruvBridgeView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/bridgeView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
val truvEventsListener = object : TruvEventsListener {

        override fun onClose() {
            Log.d(TAG, "Bridge Closed")
        }

        override fun onError() {
            Log.e(TAG, "Bridge Error")
        }

        override fun onEvent(event: TruvEventPayload.EventType) {
            Log.d(TAG, "Event: $event")
        }

        override fun onLoad() {
            Log.d(TAG, "Bridge Loaded")
        }

        override fun onSuccess(payload: TruvSuccessPayload) {
            Log.d(TAG, "Bridge Success")
            val token = payload.publicToken
            // Do something with your token
        }

    }

binding.bridgeView.addEventListener(truvEventsListener)

React Native

React Native SDK for iOS and Android is available on npm: https://www.npmjs.com/package/@truv/react-native

Installation

With npm:

npm install @truv/react-native --save

With yarn:

yarn add -S @truv/react-native

Usage

import React, { useState } from 'react';
import TruvBridge from '@truv/react-native';

const BridgeElement = () => {
  return (
    <TruvBridge
        bridgeToken={bridgeToken}
        onClose={() => {
            console.log('bridge closed');
        }}
        onError={() => {
            console.log('bridge error');
        }}
        onEvent={(event) => console.log('event from bridge: ', event)}
        onLoad={() => {
            console.log('bridge loaded');
        }}
        onSuccess={() => {
            console.log('bridge succeeded');
        }}
    />
  );
}

Flutter

Flutter SDK for iOS and Android is available on pub.dev: https://pub.dev/packages/truv_flutter

Installation

Add truv_flutter as a dependency in your pubspec.yaml file:

dependencies:
  ...
  truv_flutter: <version>

Usage

class MainScreen extends StatelessWidget {
  final bridgeToken = 'yourbridgetoken';

  Widget build(BuildContext context) {
    return TruvBridge(
      bridgeToken: bridgeToken,
      onEvent: (String event) {

      },
    );
  }
}

Javascript

JS SDK for browsers is available on npm: https://www.npmjs.com/package/@truv/bridge

Installation

With npm:

npm install @truv/bridge --save

With yarn:

yarn add -S @truv/bridge

Usage

import TruvBridge from '@truv/bridge'

const bridge = TruvBridge.init({
  bridgeToken: '<previously generated bridge token>', // more info https://docs.truv.com/reference/bridge-tokens_create
  onSuccess: (publicToken, metaData) => {
    console.log(publicToken, metaData);
  },
});

// when widget need to be opened
bridge.open();

React

React SDK for web is available on npm: https://www.npmjs.com/package/@truv/react

Installation

With npm:

npm install @truv/react --save

With yarn:

yarn add -S @truv/react

Usage

import ReactDOM from 'react-dom';
import React, { useState } from 'react';
import TruvBridge from '@truv/react';

const BridgeElement = () => {
  const [isOpened, setOpened] = useState(false);

  return (
    <>
      <button onClick={() => setOpened(true)}>Open</button>
      <TruvBridge
        bridgeToken="<previously generated bridge token>" // more info https://docs.truv.com/reference/bridge-tokens_create
        onClose={() => setOpened(false)}
        onSuccess={(publicToken, metaData) => {
          setOpened(false);
          console.log(publicToken, metaData);
        }}
        isOpened={isOpened}
      />
    </>
  );
}