Flutter版本校验插件vcheck的使用
Flutter版本校验插件vcheck的使用
VCheck 是一个在线远程验证服务,用于快速安全地访问您的服务。
该插件代表了VCheck SDK for Flutter(支持iOS和Android)。该包本身使用的依赖项包括Android的vcheck_android 和iOS的VCheckSDK,这些依赖项通过Flutter SDK传递。
特性
- 文档有效性:识别国家和文档类型。检查伪造和干扰(反光、封面、第三方物体)
- 文档数据识别:自动解析加载的文档的数据
- 活体检测:确定正在验证的是真人
- 面部匹配:验证文档所有者是否为被验证的用户
- 轻松集成到您的服务的Flutter应用中
如何使用
添加依赖
在pubspec.yaml
文件中添加以下依赖:
dependencies:
vcheck: ^1.4.10
启动SDK流程
在您的Flutter项目中,导入VCheck SDK并启动SDK流程:
import 'package:vcheck/vcheck.dart';
//...
VCheckSDK.start(
verificationToken: verifToken,
verificationScheme: verifScheme,
languageCode: "en",
environment: VCheckEnvironment.DEV,
partnerEndCallback: onFlutterSDKFlowFinished(),
onVerificationExpired: onVerificationExpired()
designConfig: designConfig ?? null);
必须属性解释
属性 | 类型 | 描述 |
---|---|---|
verificationToken | String | 最近创建的VCheck验证的有效令牌 |
verificationScheme | VerificationSchemeType | 验证方案类型 |
languageCode | String | 2字母语言代码(例如:“en”;默认实现为"en") |
environment | VCheckEnvironment | VCheck服务环境(开发/生产) |
partnerEndCallback | Function | 验证过程完成时触发的回调函数 |
onVerificationExpired | Function | 当前验证过期时触发的回调函数 |
可选属性用于验证会话逻辑和UI定制
属性 | 类型 | 描述 |
---|---|---|
designConfig | String? | 包含特定颜色属性的JSON字符串,可作为VCheck门户用户获取 |
showCloseSDKButton | bool? | 是否应显示“返回到合作伙伴”按钮 |
showPartnerLogo | bool? | 是否应显示VCheck徽标 |
完整示例Demo
以下是一个完整的示例,展示了如何在Flutter应用中使用VCheck SDK。
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:vcheck/vcheck.dart';
import 'package:vcheck_example/result_widget.dart';
// 您应该从服务提供商的一侧或联系VCheck团队获取验证令牌:
const String VERIFICATION_TOKEN = 'to-get-from-service';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final navigatorKey = GlobalKey<NavigatorState>();
bool _isDefaultTheme = true;
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
navigatorKey: navigatorKey,
home: Scaffold(
appBar: AppBar(
title: const Text('VCheck Flutter demo'),
),
body: Center(
child: Padding(
padding: const EdgeInsets.all(25.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const SizedBox(width: 0, height: 50),
MaterialButton(
color: Colors.blue,
textColor: Colors.white,
onPressed: () {
startSDK(
verificationScheme:
VerificationSchemeType.FULL_CHECK);
},
child: const Text("Full scheme")),
const SizedBox(width: 0, height: 20),
MaterialButton(
color: Colors.blue,
textColor: Colors.white,
onPressed: () {
startSDK(
verificationScheme:
VerificationSchemeType.DOCUMENT_UPLOAD_ONLY);
},
child: const Text("Document upload")),
const SizedBox(width: 0, height: 20),
MaterialButton(
color: Colors.blue,
textColor: Colors.white,
onPressed: () {
startSDK(
verificationScheme:
VerificationSchemeType.LIVENESS_CHALLENGE_ONLY);
},
child: const Text("Face check")),
const SizedBox(width: 0, height: 30),
Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const Text("Use default theme"),
const SizedBox(width: 12),
CupertinoSwitch(
activeColor: Colors.blue.shade100,
thumbColor: Colors.blue,
trackColor: Colors.black12,
value: _isDefaultTheme,
onChanged: (value) => setState(() {
_isDefaultTheme = !_isDefaultTheme;
}),
),
],
),
],
),
),
),
),
);
}
// 平台消息是异步的,所以我们初始化SDK在一个异步方法中
Future<void> startSDK(
{VerificationSchemeType verificationScheme =
VerificationSchemeType.FULL_CHECK}) async {
String designConfig;
if (_isDefaultTheme == false) {
designConfig = await DefaultAssetBundle.of(context)
.loadString("assets/light_test_theme.json");
} else {
designConfig = await DefaultAssetBundle.of(context)
.loadString("assets/default_dark_test_theme.json");
}
VCheckSDK.start(
verificationToken: VERIFICATION_TOKEN,
verificationScheme: verificationScheme,
languageCode: "en",
environment: VCheckEnvironment.DEV,
partnerEndCallback: partnerEndCallback(),
onVerificationExpired: onVerificationExpired(),
designConfig: designConfig);
if (!mounted) return;
}
Function partnerEndCallback() {
return () {
debugPrint("Triggered Dart callback for SDK finish");
navigatorKey.currentState?.push<void>(
MaterialPageRoute<void>(
builder: (BuildContext context) => const ResultWidget(),
),
);
};
}
Function onVerificationExpired() {
return () {
debugPrint("Triggered callback for verification expiration case");
};
}
}
更多关于Flutter版本校验插件vcheck的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter版本校验插件vcheck的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用vcheck
插件来进行版本校验的示例代码。vcheck
插件通常用于检查当前应用的版本与服务器上的最新版本是否一致,并提示用户更新。
首先,你需要在你的pubspec.yaml
文件中添加vcheck
依赖:
dependencies:
flutter:
sdk: flutter
vcheck: ^最新版本号 # 请替换为实际的最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,在你的Flutter应用中,你可以按照以下步骤使用vcheck
插件:
-
初始化vcheck:
在你的主文件(通常是
main.dart
)中,初始化VCheck
实例。
import 'package:flutter/material.dart';
import 'package:vcheck/vcheck.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Version Check Example'),
),
body: VersionChecker(),
),
);
}
}
class VersionChecker extends StatefulWidget {
@override
_VersionCheckerState createState() => _VersionCheckerState();
}
class _VersionCheckerState extends State<VersionChecker> {
VCheck? vCheck;
@override
void initState() {
super.initState();
// 初始化VCheck实例
vCheck = VCheck(
context: context,
// 配置服务器版本信息的URL
versionUrl: 'https://yourserver.com/version.json',
// 配置检查版本时显示的对话框(可选)
dialogConfig: VCheckDialogConfig(
title: 'New Version Available',
message: 'A new version of the app is available. Do you want to update?',
positiveButtonText: 'Update',
negativeButtonText: 'Later',
),
// 配置版本更新的回调(可选)
onVersionUpdate: (version) {
// 这里可以处理版本更新的逻辑,比如打开应用商店页面
},
);
// 检查版本
vCheck?.checkVersion();
}
@override
Widget build(BuildContext context) {
return Center(
child: Text('Checking for updates...'),
);
}
}
-
配置版本信息的JSON文件:
你需要在你的服务器上提供一个JSON文件,包含当前应用的最新版本信息。例如,创建一个名为
version.json
的文件,内容如下:
{
"current_version": "2.0.0",
"update_url": "https://yourserver.com/yourapp_2.0.0.apk" // 可选,提供APK下载链接
}
这个JSON文件应该包含两个字段:
current_version
:当前最新版本号。update_url
(可选):新版本的下载链接。
-
运行应用:
现在你可以运行你的Flutter应用,
vcheck
插件将会检查服务器的版本信息,并在有新版本时提示用户更新。
请确保你已经正确配置了服务器端的版本信息JSON文件,并且URL是可访问的。此外,根据实际需要,你可能需要调整VCheck
的配置和回调逻辑。