初始化
初始化位置
在应用加载时初始化 SDK — 通常在 main() 中,或在入口 widget 的 initState() 中。请参阅最佳实践,了解为何不应在采集按钮点击时初始化。
嵌入凭据
使用 Onboarding 团队提供的凭据,为每个平台实例化一个 UnicoConfig 对象:
final _configIos = UnicoConfig(
getBundleIdentifier: "Your BundleIdentifier Ios",
getHostKey: "Your HostKey Ios");
final _configAndroid = UnicoConfig(
getBundleIdentifier: "Your BundleIdentifier Android",
getHostKey: "Your HostKey Android");
void initUnicoCamera() {
_unicoCheck = new UnicoCheck(
listener: this,
unicoConfigIos: _configIos,
unicoConfigAndroid: _configAndroid);
}
实现 UnicoListener
在您的 widget 状态类中实现 UnicoListener 接口,并使用应用的业务逻辑覆盖回调方法:
class _MyHomePageState extends State<MyHomePage> implements UnicoListener {
late UnicoCheckBuilder _unicoCheck;
@override
void onErrorUnico(UnicoError error) {}
@override
void onUserClosedCameraManually() {}
@override
void onSystemChangedTypeCameraTimeoutFaceInference() {}
@override
void onSystemClosedCameraTimeoutSession() {}
}
必须实现的监听方法
上述四个监听方法必须在您的项目中创建(即使没有任何逻辑)。否则,项目将无法成功编译。
环境选择
环境的选择在初始化时确定。使用 UnicoEnvironment 枚举:
UnicoEnvironment.PROD— 生产环境UnicoEnvironment.UAT— UAT 环境
_unicoCheck.setEnvironment(unicoEnvironment: UnicoEnvironment.UAT);
有关可用环境类型的完整列表,请参阅 API 参考 > 初始化 API。
生命周期
SDK 与后端的认证需要几秒钟。请尽早初始化(应用冷启动时),而非在用户点击采集按钮时初始化 — 否则用户会感受到点击与相机打开之间的延迟。