Flutter集成Kvalifika SDK插件kvalifika_sdk的使用

发布于 1周前 作者 caililin 来自 Flutter

Flutter集成Kvalifika SDK插件kvalifika_sdk的使用

官方Flutter封装用于Kvalifika SDK,提供了便捷的方式来集成和使用Kvalifika服务。下面将介绍如何在Flutter项目中安装和配置kvalifika_sdk插件,并提供一个完整的示例demo。

安装与文档

查看样例应用和文档,请参考GitHub上的这个链接

示例Demo

以下是一个简单的Flutter应用示例,演示了如何集成和使用kvalifika_sdk

import 'package:flutter/material.dart';
import 'package:kvalifika_sdk/kvalifika_sdk.dart';

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

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  bool isGeorgian = false;
  bool isSdkInitialize = false;

  final String appLogo = "youtube"; // 可以替换为自己的logo名称

  KvalifikaSdkLocale get locale {
    return isGeorgian ? KvalifikaSdkLocale.GE : KvalifikaSdkLocale.EN; // 修改这里支持英文
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Kvalifika'),
          actions: [
            Switch(
              value: isGeorgian,
              onChanged: (val) {
                setState(() {
                  isGeorgian = val;
                });
              },
            ),
          ],
        ),
        body: KvalifikaSdk(
          appId: "ea6e02a1-dd89-40af-9d57-b07e1f742186", // 替换为你的client's id
          development: false,
          locale: locale,
          logo: appLogo,
          documentIcon: appLogo,
          onInitialize: (context, sdk) {
            setState(() {
              isSdkInitialize = true;
            });
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(content: Text('SDK Initialized')),
            );
            sdk.startSession();
          },
          onStart: (context, sessionId) {
            setState(() {
              isSdkInitialize = true;
            });
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(content: Text('Started Verification')),
            );
          },
          onFinish: (context, sessionId) {},
          onError: (context, error, message) {
            print(error);

            if (error == KvalifikaSdkError.TIMEOUT) {
              ScaffoldMessenger.of(context).showSnackBar(
                SnackBar(content: Text('Timeout')),
              );
            }

            if (error == KvalifikaSdkError.USER_CANCELLED) {
              ScaffoldMessenger.of(context).showSnackBar(
                SnackBar(content: Text('User Canceled')),
              );
            }

            if (error == KvalifikaSdkError.USER_BLOCKED) {
              ScaffoldMessenger.of(context).showSnackBar(
                SnackBar(content: Text('The number of attempts has expired. User blocked for 5 minutes.')),
              );
            }
          },
          builder: (BuildContext context, KvalifikaSdk sdk) {
            return Center(
              child: Container(
                margin: EdgeInsets.only(bottom: 40),
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: [
                    isSdkInitialize
                        ? SizedBox(height: 120, width: 120)
                        : SizedBox(height: 120, width: 120, child: CircularProgressIndicator()),
                    Container(
                      margin: EdgeInsets.only(top: 20),
                      child: ElevatedButton(
                        key: const Key('start_session'),
                        onPressed: () {
                          if(isSdkInitialize) {
                            sdk.startSession();
                          }
                        },
                        child: Text('Start Verification'),
                      ),
                    ),
                  ],
                ),
              ),
            );
          },
        ),
      ),
    );
  }
}

更多关于Flutter集成Kvalifika SDK插件kvalifika_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter集成Kvalifika SDK插件kvalifika_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中集成并使用kvalifika_sdk插件的示例代码。请注意,实际使用时,你需要根据kvalifika_sdk插件的官方文档和API进行调整。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加kvalifika_sdk依赖。确保你的Flutter环境已经配置好,并且可以正常访问pub.dev。

dependencies:
  flutter:
    sdk: flutter
  kvalifika_sdk: ^最新版本号  # 请替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

2. 导入SDK并初始化

在你的Dart文件中导入kvalifika_sdk并进行初始化。通常,你可以在main.dart或某个服务类中完成这些操作。

import 'package:flutter/material.dart';
import 'package:kvalifika_sdk/kvalifika_sdk.dart';

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late KvalifikaSdk kvalifika;

  @override
  void initState() {
    super.initState();
    // 初始化Kvalifika SDK
    kvalifika = KvalifikaSdk(
      apiKey: '你的API密钥',  // 请替换为你的实际API密钥
      environment: KvalifikaEnvironment.production,  // 或者 KvalifikaEnvironment.sandbox,根据你的需求
    );

    // 可以在这里添加其他初始化代码,比如事件监听等
    kvalifika.onEvent.listen((event) {
      print('Kvalifika SDK Event: $event');
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Kvalifika SDK Demo'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                onPressed: () async {
                  // 调用SDK的某个方法,例如开始识别
                  try {
                    await kvalifika.startRecognition();
                  } catch (e) {
                    print('Error starting recognition: $e');
                  }
                },
                child: Text('Start Recognition'),
              ),
              // 其他按钮或UI元素
            ],
          ),
        ),
      ),
    );
  }
}

3. 使用SDK功能

在上面的示例中,我们创建了一个简单的Flutter应用,并在initState方法中初始化了KvalifikaSdk。然后,我们在UI中添加了一个按钮,用于调用SDK的startRecognition方法。

注意事项

  1. API密钥:确保你使用的是正确的API密钥,并且该密钥具有调用所需功能的权限。
  2. 环境配置:根据你的需求选择生产环境或沙盒环境。
  3. 错误处理:在实际应用中,添加适当的错误处理逻辑,以处理SDK调用失败的情况。
  4. 文档参考kvalifika_sdk的具体方法和属性请参考其官方文档,以确保正确使用。

结论

以上代码提供了一个基本的Flutter集成kvalifika_sdk插件的示例。你可以根据实际需求进一步扩展和修改这个示例。如果你需要更详细的功能实现或遇到具体问题,请参考kvalifika_sdk的官方文档或寻求官方支持。

回到顶部