Flutter生物识别签名插件biopassid_signature_sdk的使用
Flutter生物识别签名插件biopassid_signature_sdk的使用
BioPass ID Signature SDK Flutter
快速开始指南 • 前置条件 • 安装 • 如何使用 • 许可证密钥 • SignatureConfig • 其他 • 更新日志 • 支持
快速开始指南 #
首先,您需要一个许可证密钥来使用 biopassid_signature_sdk。要获取您的许可证密钥,请通过我们的网站 BioPass ID 联系我们。 #
biopassid_signature_sdk。要获取您的许可证密钥,请通过我们的网站 BioPass ID 联系我们。 #请查看我们的 官方文档 以获取更多关于 BioPass ID 的详细信息。
1. 前置条件 #
| 项目 | Android | iOS |
|---|---|---|
| 支持 | SDK 23+ | iOS 15+ |
前置条件:
- 许可证密钥
- 必须连接互联网以验证许可证
2. 安装 #
首先,在 pubspec.yaml 文件中添加 biopassid_signature_sdk 作为依赖项。
Android
在 android/app/build.gradle 文件中将最低 Android SDK 版本更改为 23 或更高版本。
minSdkVersion 23
iOS
需要 iOS 15.0 或更高版本。
然后进入项目的 ios 文件夹并运行 pod install。
# 进入 ios 文件夹
$ cd ios
# 安装依赖
$ pod install
隐私声明文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyCollectedDataTypes</key>
<array>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeOtherUserContent</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeDeviceID</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
</array>
</dict>
</array>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
</dict>
</array>
</dict>
</plist>
3. 如何使用 #
在 Flutter 项目中调用签名功能非常简单:
import 'package:flutter/material.dart';
import 'package:biopassid_signature_sdk/biopassid_signature_sdk.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: '签名演示',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
late SignatureController controller;
[@override](/user/override)
void initState() {
super.initState();
final config = SignatureConfig(licenseKey: 'your-license-key');
controller = SignatureController(config);
}
void takeSignature() async {
final signature = await controller.takeSignature();
print('签名: ${signature[0]}');
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('签名演示'),
),
body: Center(
child: ElevatedButton(
onPressed: takeSignature,
child: const Text('捕获签名'),
),
),
);
}
}
4. 许可证密钥 #
首先,您需要一个许可证密钥来使用 biopassid_signature_sdk。要获取您的许可证密钥,请通过我们的网站 BioPass ID 联系我们。 #
biopassid_signature_sdk。要获取您的许可证密钥,请通过我们的网站 BioPass ID 联系我们。 #要使用 biopassid_signature_sdk,您需要一个许可证密钥。设置许可证密钥非常简单,只需像设置其他属性一样进行设置即可。例如:
final config = SignatureConfig(licenseKey: 'your-license-key');
SignatureConfig #
您还可以在应用程序中使用预构建的配置,以便自动启用更适合您应用的功能。您可以实例化每个配置并使用其默认属性,或者如果您愿意,可以更改所有可用的配置。以下是目前支持的类型:
SignatureConfig #
| 名称 | 类型 | 默认值 |
|---|---|---|
| licenseKey | String | ‘’ |
| screenOrientation | SignatureScreenOrientation | SignatureScreenOrientation.portrait |
| pencilColor | Color | Color(0xFF000000) |
| pencilWidth | int | 5 |
| backgroundColor | Color | Color(0xFFFFFFFF) |
| overlayColor | Color | Color(0x80000000) |
| fontFamily | String | ‘opensans_bold’ |
| titleText | SignatureTextOptions | |
| backButton | SignatureButtonOptions | |
| saveButton | SignatureButtonOptions | |
| deleteButton | SignatureButtonOptions | |
| undoButton | SignatureButtonOptions |
默认配置:
final defaultConfig = SignatureConfig(
licenseKey: '',
screenOrientation: SignatureScreenOrientation.portrait, // Android only
pencilColor: const Color(0xFF000000),
pencilWidth: 5,
backgroundColor: const Color(0xFFFFFFFF),
overlayColor: const Color(0x80000000),
fontFamily: 'signaturesdk_opensans_bold',
titleText: SignatureTextOptions(
enabled: true,
content: 'Captura de assinatura digital',
textColor: const Color(0xFFFFFFFF),
textSize: 20,
),
backButton: SignatureButtonOptions(
enabled: true,
backgroundColor: const Color(0x00000000),
buttonPadding: 0,
buttonSize: const Size(56, 56),
iconOptions: SignatureIconOptions(
enabled: true,
iconFile: 'signaturesdk_ic_close',
iconColor: const Color(0xFFFFFFFF),
iconSize: const Size(32, 32),
),
labelOptions: SignatureTextOptions(
enabled: false,
content: 'Voltar',
textColor: const Color(0xFFFFFFFF),
textSize: 14,
),
),
saveButton: SignatureButtonOptions(
enabled: true,
backgroundColor: const Color(0xFFFFFFFF),
buttonPadding: 0,
buttonSize: const Size(56, 56),
iconOptions: SignatureIconOptions(
enabled: true,
iconFile: 'signaturesdk_ic_save',
iconColor: const Color(0xFFFFFFFF),
iconSize: const Size(32, 32),
),
labelOptions: SignatureTextOptions(
enabled: false,
content: 'Salvar',
textColor: const Color(0xFFFFFFFF),
textSize: 14,
),
),
deleteButton: SignatureButtonOptions(
enabled: true,
backgroundColor: const Color(0xFFFFFFFF),
buttonPadding: 0,
buttonSize: const Size(56, 56),
iconOptions: SignatureIconOptions(
enabled: true,
iconFile: 'signaturesdk_ic_delete',
iconColor: const Color(0xFFFFFFFF),
iconSize: const Size(32, 32),
),
labelOptions: SignatureTextOptions(
enabled: false,
content: 'Deletar',
textColor: const Color(0xFFFFFFFF),
textSize: 14,
),
),
undoButton: SignatureButtonOptions(
enabled: true,
backgroundColor: const Color(0xFFFFFFFF),
buttonPadding: 0,
buttonSize: const Size(56, 56),
iconOptions: SignatureIconOptions(
enabled: true,
iconFile: 'signaturesdk_ic_undo',
iconColor: const Color(0xFFFFFFFF),
iconSize: const Size(32, 32),
),
labelOptions: SignatureTextOptions(
enabled: false,
content: 'Desfazer',
textColor: const Color(0xFFFFFFFF),
textSize: 14,
),
),
);
SignatureButtonOptions #
| 名称 | 类型 | 默认值 |
|---|---|---|
| enabled | bool | true |
| backgroundColor | Color | Color(0xFFFFFFFF) |
| buttonPadding | int | 0 |
| buttonSize | Size | Size(56, 56) |
| iconOptions | SignatureIconOptions | |
| labelOptions | SignatureTextOptions |
SignatureIconOptions #
| 名称 | 类型 | 默认值 |
|---|---|---|
| enabled | bool | true |
| iconFile | String | ‘ic_close’ |
| iconColor | Color | Color(0xFF323232) |
| iconSize | Size | Size(32, 32) |
SignatureTextOptions #
| 名称 | 类型 | 默认值 |
|---|---|---|
| enabled | bool | true |
| content | String | ‘’ |
| textColor | Color | Color(0xFF323232) |
| textSize | int | 14 |
SignatureScreenOrientation (枚举) #
| 名称 |
|---|
| SignatureScreenOrientation.portrait |
| SignatureScreenOrientation.landscape |
如何更改字体家族 #
在 Android 端
您可以使用默认字体或设置自己的字体。要设置字体家族,请在 android/app/src/main/res 目录下创建一个名为 font 的文件夹,并下载所需的字体文件放入该文件夹中。所有字体文件名必须仅包含小写字母(a-z)、数字(0-9)或下划线。结构应类似于以下内容:
在 iOS 端
要在 Xcode 项目中添加字体文件:
- 在项目导航器中选择资源目录。
- 将字体从 Finder 拖动到项目中。这会将字体复制到您的项目中。
- 选择字体或包含字体的文件夹,并确保目标成员资格已勾选为您的应用目标。
然后,在应用的 Info.plist 文件中添加 "Fonts provided by application" 键。对于键的值,提供一个包含所添加字体文件相对路径的字符串数组。
例如,字体文件位于 fonts 目录下,则在 Info.plist 文件中使用 fonts/roboto_mono_bold_italic.ttf 作为字符串值。
在 Dart 端
最后,在 Flutter 应用中实例化 SignatureConfig 时传递字体文件名。
final config = SignatureConfig(
licenseKey: 'your-license-key',
fontFamily: 'roboto_mono_bold_italic',
);
如何更改图标 #
在 Android 端
您可以使用默认图标或定义自己的图标。要设置图标,请下载所需的图标并将其放入 android/app/src/main/res/drawable 文件夹中。所有图标文件名必须仅包含小写字母(a-z)、数字(0-9)或下划线。结构应类似于以下内容:
在 iOS 端
要在 Xcode 项目中添加图标文件:
- 在项目导航器中选择一个资产目录:具有
.xcassets扩展名的文件。 - 将图像从 Finder 拖放到大纲视图中。一个新图像集出现在大纲视图中,图像资产出现在详细区域的井中。
在 Dart 端
最后,在 Flutter 应用中实例化 SignatureConfig 时传递图标文件名。
final config = SignatureConfig(licenseKey: 'your-license-key');
// 更改返回按钮图标
config.backButton.iconOptions.iconFile = 'ic_baseline_camera';
// 更改保存按钮图标
config.saveButton.iconOptions.iconFile = 'ic_baseline_camera';
// 更改删除按钮图标
config.deleteButton.iconOptions.iconFile = 'ic_baseline_camera';
// 更改撤销按钮图标
config.undoButton.iconOptions.iconFile = 'ic_baseline_camera';
其他 #
如果您喜欢签名 SDK 并希望了解我们的其他产品?我们有面部识别和指纹检测解决方案。
-
面部 SDK
-
指纹 SDK
-
签名 SDK
更新日志 #
v0.1.5 #
- 文档更新;
- 将 Android 的 minSdkVersion 升级为 23;
- 将 Android 的 Kotlin 升级到 1.9.10;
- 在 iOS 上添加了隐私声明文件。
v0.1.4 #
- 文档更新;
- 从
SignatureConfig中移除了noDrawingAlert。
v0.1.3 #
- 文档更新。
v0.1.2 #
- 文档更新;
- 添加了新的配置
noDrawingAlert:- 现在可以在尝试保存空白签名时显示一个警告对话框;
- 修复了 Android 的许可证功能中的错误;
- 添加了有关屏幕旋转的 iOS 指导。
v0.1.1 #
- 文档更新;
- 修复和改进。
v0.1.0 #
- 添加文档;
- 支持签名捕获功能;
- 提供可自定义的 UI;
- 返回捕获的签名图像。
这是完整的示例代码,您可以直接在 Flutter 项目中使用它:
import 'package:flutter/material.dart';
import 'package:biopassid_signature_sdk/biopassid_signature_sdk.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: '签名演示',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
[@override](/user/override)
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
late SignatureController controller;
[@override](/user/override)
void initState() {
super.initState();
final config = SignatureConfig(licenseKey: 'your-license-key');
controller = SignatureController(config);
}
void takeSignature() async {
final signature = await controller.takeSignature();
print('签名: ${signature[0]}');
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('签名演示'),
),
body: Center(
child: ElevatedButton(
onPressed: takeSignature,
child: const Text('捕获签名'),
),
),
);
}
}
更多关于Flutter生物识别签名插件biopassid_signature_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter生物识别签名插件biopassid_signature_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
biopassid_signature_sdk 是一个用于在 Flutter 应用中实现生物识别签名的插件。它允许用户使用生物识别技术(如指纹、面部识别等)进行签名验证,从而增强应用的安全性。以下是如何在 Flutter 项目中使用 biopassid_signature_sdk 的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml 文件中添加 biopassid_signature_sdk 的依赖:
dependencies:
flutter:
sdk: flutter
biopassid_signature_sdk: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get 来获取依赖。
2. 导入插件
在你的 Dart 文件中导入插件:
import 'package:biopassid_signature_sdk/biopassid_signature_sdk.dart';
3. 初始化 SDK
在使用插件之前,你需要初始化 SDK。通常你可以在 main.dart 或应用的入口处进行初始化:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Biopassid Signature SDK
await BiopassidSignatureSdk.initialize(
apiKey: 'YOUR_API_KEY', // 替换为你的 API Key
environment: Environment.sandbox, // 或 Environment.production
);
runApp(MyApp());
}
4. 创建签名请求
你可以使用 BiopassidSignatureSdk 创建一个签名请求:
void createSignature() async {
try {
// 创建签名请求
final signatureRequest = SignatureRequest(
userId: 'user123',
documentId: 'doc456',
documentName: 'Contract',
documentDescription: 'Sample contract for testing',
);
// 发起签名请求
final signatureResponse = await BiopassidSignatureSdk.createSignature(signatureRequest);
// 处理签名响应
print('Signature ID: ${signatureResponse.signatureId}');
print('Status: ${signatureResponse.status}');
} catch (e) {
print('Error: $e');
}
}
5. 验证签名
你可以使用 BiopassidSignatureSdk 来验证签名:
void verifySignature(String signatureId) async {
try {
// 发起签名验证请求
final verificationResponse = await BiopassidSignatureSdk.verifySignature(signatureId);
// 处理验证响应
print('Verification Status: ${verificationResponse.status}');
print('Verification Message: ${verificationResponse.message}');
} catch (e) {
print('Error: $e');
}
}
6. 处理回调
你可以监听签名过程中的回调事件,例如用户取消签名或签名失败:
BiopassidSignatureSdk.setCallbackListener((event) {
switch (event) {
case SignatureEvent.cancelled:
print('Signature was cancelled by the user.');
break;
case SignatureEvent.failed:
print('Signature failed.');
break;
case SignatureEvent.success:
print('Signature was successful.');
break;
}
});
7. 处理错误
在使用过程中,可能会遇到各种错误,例如网络错误、API 错误等。你可以通过 try-catch 块来捕获和处理这些错误:
try {
// 调用 SDK 方法
} catch (e) {
print('An error occurred: $e');
}

