Flutter注册或入学管理插件enroll_plugin的使用
Flutter注册或入学管理插件enroll_plugin的使用
我们的内部开发的eNROLL平台是一个技术合规解决方案。该方案在全球人口众多且身份伪造、签名欺诈和网络钓鱼现象普遍的国家得到广泛应用。
软件利用了一套基于AI的技术,如光学字符识别(OCR),以减少人为错误和识别所需的时间。



要求
- 最低 Flutter 版本 3.3.4
- Android minSdkVersion 24
- Kotlin 版本 1.9.0
安装
- 运行以下命令:
$ flutter pub add enroll_plugin
这将在你的包的 pubspec.yaml 文件中添加如下内容(并运行隐式的 flutter pub get
):
dependencies:
enroll_plugin: ^latest_version
- 你可以在这里找到最新版本:https://pub.dev/packages/enroll_plugin/versions
2.1. Android
- 在
Build.gradle
文件中添加以下行:
maven { url 'https://jitpack.io' }
maven { url = uri("https://maven.innovatrics.com/releases") }
-
将
minSdkVersion
升级到 24,在app/build.gradle
中。 -
在
settings.gradle
文件中添加以下行:
buildscript {
repositories {
mavenCentral()
maven {
url = uri("https://storage.googleapis.com/r8-releases/raw")
}
}
dependencies {
classpath("com.android.tools:r8:8.2.24")
}
}
2.2. iOS
- 在项目
info.plist
文件中添加以下内容:
<key>NSCameraUsageDescription</key>
<string>"您的用户消息"</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>"您的用户消息"</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
- 在 iOS 项目的 Podfile 中添加以下两个源:
source 'https://github.com/innovatrics/innovatrics-podspecs'
source 'https://github.com/CocoaPods/Specs.git'
2.3. 添加许可证文件到项目
- 对于 Android:

- 对于 iOS:

ℹ️ 确保你的 iOS 项目包含许可证文件,或者:
- 打开 iOS 项目
- 拖放许可证文件到项目的根目录
- 确保选中“复制项目中所需的项”复选框
- 然后完成
2.4. 运行命令行
flutter pub get
导入
import 'package:enroll_plugin/enroll_plugin.dart';
使用
创建一个 widget 并在构建函数中返回 EnrollPlugin
小部件:
return EnrollPlugin(
mainScreenContext: context,
tenantId: 'TENANT_ID',
tenantSecret: 'TENANT_SECRET',
enrollMode: EnrollMode.auth,
enrollEnvironment: EnrollEnvironment.staging,
localizationCode: EnrollLocalizations.en,
onSuccess: (applicantId) {
// 延迟状态更改直到构建完成
WidgetsBinding.instance.addPostFrameCallback((_) {
debugPrint("success: $applicantId");
});
},
onError: (error) {
// 延迟状态更改直到构建完成
WidgetsBinding.instance.addPostFrameCallback((_) {
debugPrint("Error: ${error.toString()}");
});
},
onGettingRequestId: (requestId) {
// 延迟状态更改直到构建完成
WidgetsBinding.instance.addPostFrameCallback((_) {
debugPrint("requestId:: $requestId");
});
},
applicationId: 'APPLICATION_ID',
skipTutorial: false,
levelOfTrust: 'LEVEL_OF_TRUST_TOKEN',
googleApiKey: 'GOOGLE_API_KEY',
correlationId: 'correlationId',
);
参数描述
键 | 值 |
---|---|
tenantId | 必填。输入组织租户ID |
tenantSecret | 必填。输入组织租户密钥 |
enrollMode | 必填。SDK模式 |
environment | 必填。选择环境:EnrollEnvironment.STAGING 用于测试,EnrollEnvironment.PRODUCTION 用于生产 |
enrollCallback | 必填。接收成功和错误响应的回调函数 |
localizationCode | 必填。选择语言代码:LocalizationCode.EN 英文,LocalizationCode.AR 阿拉伯语。默认值为英文 |
googleApiKey | 可选。Google API密钥,用于查看用户当前位置 |
applicantId | 可选。输入申请ID |
levelOfTrust | 可选。输入组织信任级别 |
skipTutorial | 可选。是否跳过教程 |
appColors | 可选。覆盖应用颜色集合,如(主色 - 辅助色 - 背景色 - 成功色 - 警告色 - 错误色 - 文本色) |
correlationId | 可选。关联ID,用于将用户ID与请求ID连接 |
完整示例代码
import 'package:enroll_plugin/enroll_plugin.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
/// 我的应用程序
class MyApp extends StatefulWidget {
/// 构造函数
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Builder(builder: (context) {
return Scaffold(
body: EnrollPlugin(
mainScreenContext: context,
tenantId: 'TENANT_ID',
tenantSecret: 'TENANT_SECRET',
enrollMode: EnrollMode.onboarding,
enrollEnvironment: EnrollEnvironment.staging,
onSuccess: (applicantId) {
WidgetsBinding.instance.addPostFrameCallback((_) {
debugPrint("success: $applicantId");
});
},
onError: (error) {
WidgetsBinding.instance.addPostFrameCallback((_) {
debugPrint("Error: ${error.toString()}");
});
},
onGettingRequestId: (requestId) {
WidgetsBinding.instance.addPostFrameCallback((_) {
debugPrint("requestId:: $requestId");
});
},
localizationCode: EnrollLocalizations.en,
applicationId: 'APPLICATION_ID',
skipTutorial: false,
levelOfTrust: 'LEVEL_OF_TRUST_TOKEN',
googleApiKey: 'GOOGLE_API_KEY',
correlationId: 'correlationIdTest',
),
);
}),
);
}
}
更多关于Flutter注册或入学管理插件enroll_plugin的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter注册或入学管理插件enroll_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中集成和使用enroll_plugin
(假设这是一个假想的插件,用于注册或入学管理)的示例代码。请注意,由于enroll_plugin
是一个假想的插件,具体的方法和类名需要根据你的实际插件文档进行调整。
1. 添加插件依赖
首先,在你的pubspec.yaml
文件中添加enroll_plugin
依赖:
dependencies:
flutter:
sdk: flutter
enroll_plugin: ^1.0.0 # 假设插件的版本是1.0.0
然后运行flutter pub get
来安装插件。
2. 导入插件
在你的Dart文件中导入插件:
import 'package:enroll_plugin/enroll_plugin.dart';
3. 初始化插件
通常在应用启动时初始化插件,比如在MainActivity.kt
(Android)或AppDelegate.swift
(iOS)中进行配置(这取决于插件是否需要原生代码初始化)。但大多数情况下,Flutter插件会自动处理这些步骤。你可以在Flutter代码中进行基本的初始化。
4. 使用插件功能
以下是一个示例,展示如何使用enroll_plugin
进行注册或入学管理。假设插件提供了registerStudent
和enrollStudent
方法。
import 'package:flutter/material.dart';
import 'package:enroll_plugin/enroll_plugin.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Enrollment Management',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: EnrollmentScreen(),
);
}
}
class EnrollmentScreen extends StatefulWidget {
@override
_EnrollmentScreenState createState() => _EnrollmentScreenState();
}
class _EnrollmentScreenState extends State<EnrollmentScreen> {
final EnrollPlugin _enrollPlugin = EnrollPlugin();
String _result = '';
void _registerStudent() async {
String studentId = 'S12345';
String name = 'John Doe';
String email = 'john.doe@example.com';
try {
bool success = await _enrollPlugin.registerStudent(studentId, name, email);
if (success) {
setState(() {
_result = 'Student registered successfully!';
});
} else {
setState(() {
_result = 'Failed to register student.';
});
}
} catch (e) {
setState(() {
_result = 'Error: ${e.message}';
});
}
}
void _enrollStudent() async {
String studentId = 'S12345';
String courseId = 'C67890';
try {
bool success = await _enrollPlugin.enrollStudent(studentId, courseId);
if (success) {
setState(() {
_result = 'Student enrolled successfully!';
});
} else {
setState(() {
_result = 'Failed to enroll student.';
});
}
} catch (e) {
setState(() {
_result = 'Error: ${e.message}';
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Enrollment Management'),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: <Widget>[
Button(
child: Text('Register Student'),
onPressed: _registerStudent,
),
SizedBox(height: 20),
Button(
child: Text('Enroll Student'),
onPressed: _enrollStudent,
),
SizedBox(height: 20),
Text(_result),
],
),
),
);
}
}
// Note: The Button widget is a custom widget here. You can use ElevatedButton from Material library.
class Button extends StatelessWidget {
final String text;
final VoidCallback onPressed;
Button({required this.text, required this.onPressed});
@override
Widget build(BuildContext context) {
return ElevatedButton(
onPressed: onPressed,
child: Text(text),
);
}
}
注意事项
- 插件方法:确保
EnrollPlugin
类中的registerStudent
和enrollStudent
方法存在,并且参数类型正确。 - 错误处理:在实际应用中,你可能需要更详细的错误处理逻辑。
- UI调整:根据实际需求调整UI组件和布局。
以上代码只是一个示例,实际使用时需要根据enroll_plugin
的API文档进行调整。