You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Onfido Flutter/Android SDK安卓端调用startWorkflow无法返回问题求助

Android端Onfido工作流无法退出问题处理方案

问题背景

所有版本的Flutter及Android Onfido SDK均存在该问题,本文以Flutter 8.4.0为例:调用以下代码可正常渲染Onfido工作流,用户能完成流程,但仅安卓端无法退出——无屏幕返回按钮、Toolbar不显示,设备物理返回键也无响应,只能杀死应用重启;iOS端正常显示返回按钮,且Flutter/Android官方示例APP也存在同样问题。

调用代码示例:

final Onfido onfido = Onfido(  
  sdkToken: sdkToken,  
  nfcOption: NFCOptions.DISABLED,  
  onfidoTheme: OnfidoTheme.DARK,  
  iosAppearance: IOSAppearance(  
    buttonCornerRadius: 4,  
  ),  
);  
await onfido.startWorkflow(workflowRunId);

已知但不符合需求的方案

调用start()并传入Flowsteps会显示返回按钮,但后端工作流随业务场景动态变化,无法提前固定Flowsteps,因此该方案不可用。

可行解决思路

  1. 安卓原生层拦截物理返回键
    Onfido工作流是通过Flutter启动的原生Activity,可在安卓项目中重写返回键逻辑,识别Onfido的Activity并强制关闭:
override fun onBackPressed() {
    val runningTasks = getSystemService(ACTIVITY_SERVICE) as ActivityManager
    val topActivity = runningTasks.getRunningTasks(1)[0].topActivity
    if (topActivity?.className?.contains("Onfido") == true) {
        topActivity.finish()
        return
    }
    super.onBackPressed()
}

也可通过MethodChannel通知Flutter端处理后续逻辑。

  1. 强制显示安卓ActionBar
    检查安卓项目的主题配置,确保Onfido相关Activity的主题未隐藏ActionBar。可在AndroidManifest.xml中为Onfido的Activity单独指定主题:
<activity
    android:name="com.onfido.sdk.capture.ui.OnfidoActivity"
    android:theme="@style/Theme.AppCompat.Light.DarkActionBar" />
  1. 联系Onfido官方支持
    由于该问题在官方示例APP中也存在,属于SDK自身的设计缺陷,可直接向Onfido技术支持反馈,询问是否有隐藏配置项或补丁版本修复该问题。

内容的提问来源于stack exchange,提问作者HBG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 21:07:14