gpt4 book ai didi

android - 如何在flutter中登录后禁用用户返回

转载 作者:行者123 更新时间:2023-12-01 15:52:12 26 4
gpt4 key购买 nike

在这个应用程序中,当用户单击登录页面导航到主页但是当用户在主屏幕上按下返回按钮时,页面导航到登录,所以这不是正确的流程
我triend navigator.pushReplacement 但是当用户在主屏幕上按下后退按钮时应用程序关闭并进入后台,当用户从后台打开该应用程序然后显示主屏幕时它显示登录屏幕所以请提出建议,
这是我的代码
登录界面

Future<void> login(
String emailId, String password, String accessToken) async {
final dio = Dio(); // Provide a dio instance
String token = AppStrings.keyBearer + accessToken;
var customHeaders = {
AppStrings.authorization: token,
AppStrings.keyContentType: AppStrings.valueContentType
};

dio.options.headers.addAll(customHeaders);
final client = RestClient(dio);
await client
.loginUser(LoginUser(
deviceToken: AppStrings.valueDeviceToken,
lastLoginPlatform: AppStrings.valuePlatform))
.then((res) {
if(res.interests.isEmpty){
AppHelper.showToastMessage(
AppStrings.message_logged_in_successfully);
Navigator.of(context, rootNavigator: true).pop();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => InterestsPage(
userAccesstoken: accessToken,
)));
}
else{
AppHelper.showToastMessage(
AppStrings.message_logged_in_successfully);
Navigator.of(context, rootNavigator: true).pop();
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => HomePage(
userAccesstoken: accessToken,
userInterests: res.interests
)));
}
}).catchError((Object obj) {
switch (obj.runtimeType) {
case DioError:
final res = (obj as DioError).response;
Navigator.of(context, rootNavigator: true).pop();
logger.e(res.statusMessage);
AppHelper.showToastMessage(AppStrings.message_something_went_wrong);
break;
}
});
}
我用了
Navigator.of(context, rootNavigator: true).pop(); 
用于关闭对话框
我没有收到任何错误,但我希望当用户按下主屏幕应用程序上的后退按钮进入后台并且当用户从后台打开该应用程序时显示主屏幕而不是登录屏幕
告诉我我在导航中犯的错误以及如何解决它。

最佳答案

您正在寻找的方法是pushReplacement ,要走的路是:

Navigator.of(context).pop();
Navigator
.of(context)
.pushReplacement(
MaterialPageRoute(
builder: (BuildContext context) => InterestsPage(
userAccesstoken: accessToken,
)
)
)
这样,它将弹出警报消息,然后将所有以前的页面替换为您想要的页面。
但是,是否需要显示登录页面的逻辑归结为偏好,因为我不能说没有附加代码怎么做。例如,我在登录后将用户存储在本地数据库中。这样,即使没有连接,也可以访问应用程序。

关于android - 如何在flutter中登录后禁用用户返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63576255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com