Flutter活体自拍验证插件flutter_selfie_liveness的使用

Flutter活体自拍验证插件flutter_selfie_liveness的使用

flutter_selfie_liveness 是一个用于检测活体自拍的新插件。该插件非常易于使用,只需调用一个函数即可返回捕捉到的用户文件或图像路径。

使用

要使用该插件,只需导入并调用一个函数来获取捕捉到的用户图像路径。

import 'package:flutter_selfie_liveness/flutter_selfie_liveness.dart';

// 调用并等待函数以返回捕捉到的用户图像路径
SelfieLiveness.detectLiveness(
  poweredBy: "", // 可选参数,显示在页面上的品牌名称
  assetLogo: "assets/raven_logo_white.png", // 必需参数,应用程序的logo资源
  compressQualityandroid: 88, // Android上压缩质量,范围为1-100
  compressQualityiOS: 88, // iOS上压缩质量,范围为1-100
)

iOS需求

为了在iOS设备上使用此插件,需要更新 ios/Runner/info.plist 文件,并添加相机和照片库权限描述。

info.plist 中添加以下内容:

<key>NSCameraUsageDescription</key>
<string>允许访问摄像头</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>允许访问相册以存储捕捉到的照片</string>

同时确保 ios/Podfile 中设置的平台版本不低于13.0,并运行 pod install 命令。

示例

以下是一个完整的示例代码,演示如何在Flutter应用中使用 flutter_selfie_liveness 插件。

import 'package:flutter/material.dart';
import 'dart:io';
import 'package:flutter_selfie_liveness/flutter_selfie_liveness.dart';

void main() {
  runApp(ElatechLiveliness());
}

class ElatechLiveliness extends StatefulWidget {
  [@override](/user/override)
  State<StatefulWidget> createState() {
    return _ElatechLiveliness();
  }
}

class _ElatechLiveliness extends State<ElatechLiveliness> {
  String value = "";

  // 必须包含资产图像
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SizedBox(
          width: double.infinity,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              value != ""
                  ? Image.file(File(value), key: UniqueKey())
                  : const SizedBox(),
              Text("按按钮拍摄照片"),
              ElevatedButton(
                onPressed: () async {
                  value = await SelfieLiveness.detectLiveness(
                    poweredBy: "",
                    assetLogo: "assets/raven_logo_white.png",
                    compressQualityandroid: 88,
                    compressQualityiOS: 88,
                  );
                  setState(() {});
                },
                child: const Text("检测活体"),
              )
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter活体自拍验证插件flutter_selfie_liveness的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter活体自拍验证插件flutter_selfie_liveness的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_selfie_liveness 是一个用于在 Flutter 应用中实现活体自拍验证的插件。这个插件通常用于身份验证场景,确保用户是真实的活体,而不是使用照片或视频进行欺骗。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 flutter_selfie_liveness 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  flutter_selfie_liveness: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入插件:

import 'package:flutter_selfie_liveness/flutter_selfie_liveness.dart';

3. 初始化插件

在使用插件之前,通常需要初始化它。你可以根据插件的文档进行初始化配置。

void initSelfieLiveness() async {
  await FlutterSelfieLiveness.initialize(
    apiKey: "YOUR_API_KEY",  // 替换为你的API密钥
    // 其他配置参数
  );
}

4. 启动活体自拍验证

你可以使用 FlutterSelfieLiveness.startLivenessCheck 方法来启动活体自拍验证。

void startLivenessCheck() async {
  try {
    final result = await FlutterSelfieLiveness.startLivenessCheck();
    if (result.isSuccess) {
      // 验证成功
      print("Liveness check passed!");
      // 你可以获取自拍照片
      final selfieImage = result.selfieImage;
      // 处理自拍照片
    } else {
      // 验证失败
      print("Liveness check failed: ${result.errorMessage}");
    }
  } catch (e) {
    print("Error during liveness check: $e");
  }
}

5. 处理验证结果

在上面的代码中,result 包含了验证的结果。如果验证成功,你可以获取自拍照片并进行后续处理。如果验证失败,你可以根据 result.errorMessage 来提示用户。

6. 自定义UI(可选)

有些插件允许你自定义活体自拍验证的UI。你可以根据插件的文档进行配置。

await FlutterSelfieLiveness.startLivenessCheck(
  customUI: CustomLivenessUI(
    // 自定义UI配置
  ),
);

7. 处理权限

确保你在应用中请求了相机权限,因为活体自拍验证需要使用摄像头。

import 'package:permission_handler/permission_handler.dart';

void requestPermissions() async {
  var status = await Permission.camera.status;
  if (!status.isGranted) {
    await Permission.camera.request();
  }
}

8. 处理生命周期

在 Flutter 中,你可能需要在页面生命周期中管理插件的行为,例如在页面销毁时释放资源。

[@override](/user/override)
void dispose() {
  FlutterSelfieLiveness.dispose();
  super.dispose();
}
回到顶部