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,因此该方案不可用。
可行解决思路
- 安卓原生层拦截物理返回键
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端处理后续逻辑。
- 强制显示安卓ActionBar
检查安卓项目的主题配置,确保Onfido相关Activity的主题未隐藏ActionBar。可在AndroidManifest.xml中为Onfido的Activity单独指定主题:
<activity android:name="com.onfido.sdk.capture.ui.OnfidoActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar" />
- 联系Onfido官方支持
由于该问题在官方示例APP中也存在,属于SDK自身的设计缺陷,可直接向Onfido技术支持反馈,询问是否有隐藏配置项或补丁版本修复该问题。
内容的提问来源于stack exchange,提问作者HBG
相关产品推荐
相关产品推荐

