demo bug 弹窗层级太高 导致提示无法正常显示
ZhangZhiH opened this issue · 14 comments
SmartDialog.showToast 全都无法正 常显示
case AuthResultCode.interfaceDemoted:
case AuthResultCode.interfaceLimited:
case AuthResultCode.featureInvalid:
case AuthResultCode.outOfService:
SmartDialog.showToast('暂时无法一键登录,请使用其他登录方式');
break;
case AuthResultCode.failed:
case AuthResultCode.errorNetwork:
case AuthResultCode.errorClientTimestamp:
case AuthResultCode.statusBusy:
SmartDialog.showToast('请求遇到问题,请稍后重试');
break;
case AuthResultCode.decodeAppInfoFailed:
SmartDialog.showToast(responseModel.msg ?? 'SDK密钥错误');
break;
case AuthResultCode.onCustomViewTap:
SmartDialog.showToast("点击自定义控件:${responseModel.msg}");
break;
第二个问题 登录成成功后 第一次正常
退出重新登录当前页面会出现
Consider canceling any active work during "dispose" or using the "mounted" getter to determine if the State is still active
我也不是很确定是否是我使用的问题,但是我用ali_auth: 1.0.8 没有出现过这个问题 今天刚换到您的插件flutter_ali_auth 但是初
接上面
第二次登录后在全局异常拦截里 会出现
This widget has been unmounted, so the State no longer has a context (and should be considered defunct).
这个问题我会持续跟踪
SmartDialog是flutter写,在原生页面调用时候没有办法控制层级,谢谢。说清楚你的需求,你需要显示什么在上面
第二个问题 登录成成功后 第一次正常 退出重新登录当前页面会出现 Consider canceling any active work during "dispose" or using the "mounted" getter to determine if the State is still active 我也不是很确定是否是我使用的问题,但是我用ali_auth: 1.0.8 没有出现过这个问题 今天刚换到您的插件flutter_ali_auth 但是初
这个插件没有除了demo没有用到widget,请检查你的代码
感谢您的回复! 首先经过这两天我对这个组件的研究 发现无论是易用性 灵活性 还是设计上确实要比ali_auth 优秀不少,其次就是作者的活跃度要高很多,所以我果断换了这个插件,目前 我遇到的问题有以下几个
需求是 获取token的时候会出现获取失败 但是无法弹窗提醒用户,导致页面无反应,实际是弹窗被授权的弹窗覆盖了, 此处如果无法降低弹窗的层级 ,是否可以增加一个关闭授权窗口的方法.报错后我可以关闭授权窗口并提示错误,
安卓升级遇到问题
1 我本地是 gradle-6.7 必须升级成 gradle-7.4
2 安卓下的 alertWindowHeight设置后影响了弹出层的宽度 ,IOS下正常 目前我的解决方案是安卓下设置alertWindowHeight=null 此处可能有疑问 因为我ios 用的是小手机 iPhone5s 安卓是小米10 可能是分辨率有影响
3. 安卓下alertTitleBarConfig 、alertContentViewColor 颜色无法生效 ,导致夜间模式无法适配 sloganConfig 无法生效传入的提示无法正常显示 注意:以上参数ios下均正常显示 代码和安卓效果图贴在最后
AliAuthClient.initSdk(
authConfig: AuthConfig(
androidSdk:
"",
iosSdk:
"",
//enableLog: false,
authUIStyle: AuthUIStyle.alert,
authUIConfig: AlertUIConfig(
alertTitleBarConfig: AlertTitleBarConfig(
alertTitleBarColor: context.isDark ? "#272D39" : "#ffffff",
),
alertContentViewColor: context.isDark ? "#272D39" : "#ffffff",
phoneNumberConfig: PhoneNumberConfig(
numberColor: context.isDark ? "#ffffff" : "#222222"),
privacyConfig: const PrivacyConfig(
privacyOneName: "《用户协议》",
privacyOneUrl: "${Constant.baseUrl}/wx/#/App/invitationAgreement",
privacyTwoName: "《隐私政策》",
privacyTwoUrl:
"${Constant.baseUrl}/wx/#/App/invitationPrivacyPolicy"),
alertWindowHeight: Device.isIOS ? 420 : null,
// navConfig: NavConfig(navColor: Colors.cyan.toHex()),
loginButtonConfig: LoginButtonConfig(
loginBtnUnableImage: "assets/images/login/login_btn_press.png",
loginBtnNormalImage: "assets/images/login/login_btn_press.png",
loginBtnPressedImage: "assets/images/login/login_btn_press.png"),
logoConfig: const LogoConfig(
logoIsHidden: false,
logoImage: "assets/images/logo.png",
),
sloganConfig: SloganConfig(
sloganTextColor: context.isDark ? "#ffffff" : "#222222",
sloganText: '使用本机号码一键登录',
sloganTextSize: 16),
),
),
);
第二个问题 登录成成功后 第一次正常 退出重新登录当前页面会出现 Consider canceling any active work during "dispose" or using the "mounted" getter to determine if the State is still active 我也不是很确定是否是我使用的问题,但是我用ali_auth: 1.0.8 没有出现过这个问题 今天刚换到您的插件flutter_ali_auth 但是初
这个插件没有除了demo没有用到widget,请检查你的代码
这个问题我查了一下,目前是怀疑在AliAuthClient.onListen的事件回调里登录成功后调用了
NavigatorUtils.push(context, Routes.home)进行页面的跳转到首页 这里用到了上下文的context flutter的跳转必须依赖context
下一次在进事件的时候 就找不到context了 因为上一个context已经被释放了
现在发现无法重新注册AliAuthClient.onListen, 此处是否应该 增加一个 AliAuthClient.removeListener()的方法,这样我下次进来重新注册事件还会找到context ,
或者引用#2问题,是否可以在AliAuthClient.login() 之后增加成功的回调
关不了吗?实在不行,获取token失败我在插件那里直接退出授权页面。
安卓alertWindow也就是弹窗模式,无论是底部弹窗或者提示框的宽高都是设置不了,因为阿里云提供的sdk就是这样。他们安卓的好像写得比较死。安卓的提示框bar颜色和背景颜色也是设置不了,暂时按照默认的吧
1 点击关闭按钮是可以关闭的,但是点击一键登录时候如果出错提示异常信息就被遮住了,如果异常也能像成功一样自动关闭授权窗口也可以,这样可能就不会挡住异常提示了。
2 颜色改不了就尴尬了 ,如果是真的无法实现也只好这样了。我从ali_auth插件换过来就是因为他的插件安卓一切正常,他的安卓是传的背景图片用来实现换背景色, 但是他的ios 的bug有些多,也是无法实现夜间模式
3 我看了SloganConfig 这个配置为什么安卓下不生效 用来提示标语的 一直是 ”欢迎登陆“,这个应该比较重要
4 还有我一直跟踪的问题:Consider canceling any active work during "dispose" or using the "mounted" getter to determine if the State is still active 关于回调导致flutter 上下文context找不到的问题 暂时我注释了事件无法重复注册的代码发现不会报错了,但是这样不确定是否会造成事件重复监听或引起其他问题,最好还是增加手动移除监听的方法
更新,添加了移除监听。还没发pub。另外你说的点击一键登录时候如果出错提示异常信息就被遮住了,你把具体出错的截图给我看才知道怎么处理,有很多种异常回调码没法直接判断
已更新,quitLoginPage试试