Options
All
  • Public
  • Public/Protected
  • All
Menu

@okhi/react-native-okverify

The OkVerify Android library enables you to verify a user's OkHi address

Prerequisite libraries

Installation

npm install @okhi/react-native-okverify

Usage

initialisation

Run the init method once on app start. Place this in your index.js file.

import { AppRegistry } from 'react-native';
import App from './src/App';
import { name as appName } from './app.json';
import * as OkVerify from '@okhi/react-native-okverify';

// init method takes in an optional notification configuration that'll be used
// to start a foreground service in order to transmit verification
// signals to OkHi servers.

OkVerify.init({
  title: 'Verification in progress',
  text: 'Verification in progress',
  channelDescription: 'OkHi verification status updates',
  channelId: 'okhi',
  channelName: 'OkHi Verification',
});

// OkVerify.init();

AppRegistry.registerComponent(appName, () => App);

implementation

import React, { useState } from 'react';
import { Button, Rationale } from 'react-native';
import {
  OkHiException,
  OkHiUser,
  requestLocationPermission,
} from '@okhi/react-native-core';
import OkHiLocationManager, {
  OkCollectSuccessResponse,
} from '@okhi/react-native-okcollect';
import {
  canStartVerification,
  startVerification,
} from '@okhi/react-native-okverify';

function App() {
  const [launch, setLaunch] = React.useState(false);

  const locationPermissionRationale: Rationale = {
    message:
      'Hey, we need permissions to enable you create addresses at your current location',
    title: 'Location permission required',
    buttonPositive: 'Grant',
  };

  useEffect(() => {
    // location permission is required to enable users to create
    // addresses at their current location
    async function requestPermission() {
      await requestLocationPermission(locationPermissionRationale);
    }
    requestPermission();
  }, []);

  const user: OkHiUser = {
    firstName: 'Bob',
    lastName: 'Mark',
    phone: '+254712345678', // Make sure its in MSISDN standard format
  };

  const handleOnSuccess = async (response: OkCollectSuccessResponse) => {
    setLaunch(false);
    try {
      // setting requestServices to true will request any missing permission
      // or any unavailable service to be turned on by the user on your behalf
      const canStart = await canStartVerification({
        requestServices: true,
        locationPermissionRationale,
      });
      if (canStart) {
        const result = await startVerification(response);
        console.log('Started verification for: ' + result);
      }
    } catch (error) {
      console.log(error.code);
      console.log(error.message);
    }
  };

  const handleOnError = (error: OkHiException) => {
    setLaunch(false);
    console.log(error.code);
    console.log(error.message);
  };

  // called when user taps on the top right close button
  const handleOnCloseRequest = () => {
    setLaunch(false);
  };

  return (
    <View style={{ flex: 1 }}>
      <Button onPress={() => setLaunch(true)} title="Start Verification" />
      <OkHiLocationManager
        user={user}
        onSuccess={handleOnSuccess}
        onError={handleOnError}
        onCloseRequest={handleOnCloseRequest}
        launch={launch}
      />
    </View>
  );
}

Documentation

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT

Index

Functions

Const canStartVerification

  • canStartVerification(configuration: { requestServices: boolean }): Promise<boolean>
  • Checks whether all necessary permissions and services are available in order to start the verification process.

    Parameters

    • configuration: { requestServices: boolean }

      Object that determines whether or not to request these permissions and services from the user.

      • requestServices: boolean

    Returns Promise<boolean>

    A promise that resolves to a boolean value indicating whether or not all conditions are met to star the verification process.

Const init

  • The init method performs crucial checks and verification signal uploads that are necessary for the library to work effectively. The init method takes in an optional, but highly recommended notification configuration that'll be used to start an Android foreground service. The service will attempt to immediately upload verification signals as soon as they occur.

    Parameters

    Returns void

Const isForegroundServiceRunning

  • isForegroundServiceRunning(): Promise<boolean>
  • Checks whether the foreground service is running

    Returns Promise<boolean>

Const start

  • start(phoneNumber: string, locationId: string, coords: { lat: number; lon: number }, configuration?: undefined | { withForeground?: undefined | false | true }): Promise<unknown>
  • Attempts to start the address verification process.

    Parameters

    • phoneNumber: string

      The user's phone number

    • locationId: string

      The OkHi location id obtained after a user creates an address with OkHi using OkCollect

    • coords: { lat: number; lon: number }

      Pair of coordinates use to verify the address

      • lat: number
      • lon: number
    • Optional configuration: undefined | { withForeground?: undefined | false | true }

    Returns Promise<unknown>

    Promise that resolves with the location id.

Const startForegroundService

  • startForegroundService(): Promise<boolean>
  • Starts a foreground service to improve the overall stability and reliability of identifying and transmitting of address verification signals (Requires) an address to be registred for verification i.e after invoking the startVerification method (Requires) a notification to be configured via the init method

    Returns Promise<boolean>

Const startVerification

  • startVerification(response: { location: OkHiLocation; user: OkHiUser }, configuration?: undefined | { withForeground?: undefined | false | true }): Promise<string>
  • Attempts to start the address verification process.

    Parameters

    Returns Promise<string>

    Promise that resolves with the location id.

Const stopForegroundService

  • stopForegroundService(): Promise<boolean>
  • Stops any running foreground service

    Returns Promise<boolean>

Const stopVerification

  • stopVerification(locationId: string): Promise<string>
  • Attemps to stop the verification process of particular location.

    Parameters

    • locationId: string

    Returns Promise<string>

    The locaiton id.

Legend

  • Property

Generated using TypeDoc