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}
/>
</>
);
}
Updated over 1 year ago