The OkVerify Android library enables you to verify a user's OkHi address
npm install @okhi/react-native-okverify
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);
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>
);
}
See the contributing guide to learn how to contribute to the repository and the development workflow.
MIT
Object that determines whether or not to request these permissions and services from the user.
A promise that resolves to a boolean value indicating whether or not all conditions are met to star the verification process.
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.
Checks whether the foreground service is running
Attempts to start the address verification process.
The user's phone number
The OkHi location id obtained after a user creates an address with OkHi using OkCollect
Pair of coordinates use to verify the address
Promise that resolves with the location id.
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
Attempts to start the address verification process.
The OkCollectSuccessResponse object once an address has been successfully created. (https://okhi.github.io/react-native-okcollect/interfaces/okcollectsuccessresponse.html)
Lets you customise the functionality of address verification
Promise that resolves with the location id.
Stops any running foreground service
Attemps to stop the verification process of particular location.
The locaiton id.
Generated using TypeDoc
Checks whether all necessary permissions and services are available in order to start the verification process.