getVisitorData<T extends FingerprintJSProResponse> static method

Future<T> getVisitorData<T extends FingerprintJSProResponse>({
  1. Map<String, dynamic>? tags,
  2. String? linkedId,
})

Returns the visitor data generated by the native Fingerprint Pro client Support tags Support linkedId Throws a FingerprintProError if identification request fails for any reason

Implementation

static Future<T> getVisitorData<T extends FingerprintJSProResponse>(
    {Map<String, dynamic>? tags, String? linkedId}) async {
  if (!_isInitialized) {
    throw Exception(
        'You need to initialize the FPJS Client first by calling the "initFpjs" method');
  }

  try {
    final visitorDataTuple = await _channel
        .invokeMethod('getVisitorData', {'linkedId': linkedId, 'tags': tags});

    final String requestId = visitorDataTuple[0];
    final num confidence = visitorDataTuple[1];

    Map<String, dynamic> visitorDataJson;
    if (kIsWeb) {
      visitorDataJson = Map<String, dynamic>.from(visitorDataTuple[2]);
    } else {
      final String visitorDataJsonString = visitorDataTuple[2];
      visitorDataJson = jsonDecode(visitorDataJsonString);
    }

    final visitorData = _isExtendedResult
        ? FingerprintJSProExtendedResponse.fromJson(
            visitorDataJson, requestId, confidence)
        : FingerprintJSProResponse.fromJson(
            visitorDataJson, requestId, confidence);

    return visitorData as T;
  } on PlatformException catch (exception) {
    throw unwrapError(exception);
  }
}