【发布时间】:2021-06-09 02:50:15
【问题描述】:
我已经使用 webview_flutter: ^0.3.3 依赖项实现了 Flutter Webview。
我的流程是:
启动画面 -> 主页(2 个按钮,登录和探索)-> 登录页面
如果已经按了一次登录,那么它将直接打开LoginPage。
让我分享代码:
splash_screen.dart
Future<void> doSomeAsyncStuff() async {
final prefs = await SharedPreferences.getInstance();
isLogin = prefs.getBool('isLogin') ?? false;
new Future.delayed(const Duration(seconds: 3), () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => isLogin ? LoginPage() : HomePage()));
});
}
home_page.dart
// Login Button Click, Here I am saving preference for login.
// So I can come to login directly when I open the app.
Future<void> openLoginPage() async {
final prefs = await SharedPreferences.getInstance();
prefs.setBool('isLogin', true);
Navigator.pushReplacement(
context, MaterialPageRoute(builder: (context) => LoginPage()));
}
// Explore Button Click
void openExplorePage() {
Navigator.push(
context, MaterialPageRoute(builder: (context) => ExplorePage()));
}
login_page.dart
// I AM GETTING PROBLEM HERE...
// WHEN I AM PRESSING BACK BUTTON.. I WANT TO EXIT FROM APP BUT BECAUSE OF THERE IS NOTHING IN BACK STACK, IT IS NOT DOING ANYTHING.
// IF I HAVE SOMETHING IN BACK STACK OF WEBVIEW, IT WILL GO TO BACK PAGE but PROBLEM IS ONLY WHEN I WANT TO EXIT FROM APP.
Future<bool> _exitApp(BuildContext context) async {
if (await controllerGlobal.canGoBack()) {
controllerGlobal.goBack();
} else {
Navigator.of(context).pop();
return Future.value(true);
}
}
谁能帮帮我?
【问题讨论】:
标签: flutter flutter-navigation