initShield static method

Future<void> initShield(
  1. ShieldConfig config
)

Implementation

static Future<void> initShield(ShieldConfig config) async {
  try {
    if (config.shieldCallback != null) {
      _channel.setMethodCallHandler(_methodHandler);
      _shieldCallback = config.shieldCallback;
    }

    final environment = _serializeEnvironment(config.environment);
    final logLevel = _serializeLogLevel(config.logLevel);

    unawaited(setCrossPlatformParameters());

    final dialogMap = config.defaultBlockedDialog != null
        ? {
      "title": config.defaultBlockedDialog!.title,
      "body": config.defaultBlockedDialog!.body,
    }
        : null;

    final args = <String, dynamic>{
      "siteID": config.siteID,
      "key": config.key,
      "registerCallback": config.shieldCallback != null,
      "partnerId": config.partnerId,
      "environment": environment,
      "logLevel": logLevel,
      "defaultBlockedDialog": dialogMap,
    };

    // Android 2.x.x
    if (Platform.isAndroid) {
      args["needBackgroundListener"] = config.enableBackgroundListener;
      args["blockScreenRecording"] = config.blockScreenRecording;
    }

    // iOS 1.x.x
    if (Platform.isIOS) {
      args["enableBackgroundListener"] = config.enableBackgroundListener;
      args["enableMocking"] = config.enableMocking;
    }

    await _channel.invokeMethod("initShieldFraud", args);
  } catch (e, s) {
    _internalLog("initShield failed", e, s);
  }
}