如 我在登录页面弹出了极验对话框,但是不去验证,而是返回,进入另外一个需要极验的页面此时 极验验证对话框黑屏
修改方法:
1 屏蔽Back键
在原生Android修改
// 设置点击灰色区域是否消失,默认不消息
gt3ConfigBean.setCanceledOnTouchOutside(false);
//设置点击 back 返回键弹框是否消失,默认消失
gt3ConfigBean.setUnCanceledOnTouchKeyCodeBack(true);
2 如果不想屏蔽Back键
可以这样修改 回调原生dismissGeetestDialog()方法,然后与Flutter通信
if (call.method.equals("onClose")) {
gt3GeetestUtils.dismissGeetestDialog();
}
else if (call.method.equals("onDestroy")) {
destory();
}
Flutter修改如下:
///极验清理资源
Future<String> customVerityDestory() async {
try {
return await _channel.invokeMethod("onDestroy");
} on PlatformException catch (e) {
print(e.toString());
return "-1";
}
}
///极验关闭对话框
Future<String> customVerityClose() async {
try {
return await _channel.invokeMethod("onClose");
} on PlatformException catch (e) {
print(e.toString());
return "-1";
}
}
然后在对应Flutter 页面dispose方法执行 关闭对话框,当然也可以WillPopScope()方法监听back键 执行 customVerityClose();
@override
void dispose() {
onDestroy();
super.dispose();
}
onDestroy() async {
try {
customVerityClose();
customVerityDestory();
} on PlatformException catch (e) {
print(e);
}
}
}
版权声明:本文为wds1181977原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。