Flutter在按Back键后无法弹出极验验证对话框黑屏问题

如 我在登录页面弹出了极验对话框,但是不去验证,而是返回,进入另外一个需要极验的页面此时 极验验证对话框黑屏

修改方法:
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版权协议,转载请附上原文出处链接和本声明。