#flutter #dart #mobile-application #flutter-web #flutterwebviewplugin
#трепетание #дротик #мобильное приложение #flutter-web #flutterwebviewplugin
Вопрос:
Я совершенно новичок в flutter, я использую виджет веб-просмотра, но всякий раз, когда я нажимаю «Назад», он выходит из приложения. Как я могу вернуться на предыдущую страницу при нажатии кнопки «Назад»?
Вот мой фрагмент кода
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
void main() => runApp(MyApp());
WebViewController controllerGlobal;
Future<bool> _exitApp(BuildContext context) async {
if (await controllerGlobal.canGoBack()) {
print("onwill goback");
controllerGlobal.goBack();
return Future.value(true);
} else {
Scaffold.of(context).showSnackBar(
const SnackBar(content: Text("No back history item")),
);
return Future.value(false);
}
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'TRAVMAKS',
home: WillPopScope(
onWillPop: () => _exitApp(context),
child:Scaffold(
body: Container(
margin: const EdgeInsets.only(top: 52.0),
child: Container(
margin: const EdgeInsets.only(top: 0.0),
child: WebView(
initialUrl: 'https://www.google.com',
javascriptMode: JavascriptMode.unrestricted,
)
)
)
)
)
);
}
}
Ответ №1:
Вы возвращаетесь true
после перехода обратно в свой WebView
. Если вы вернетесь true
onWillPop
, Flutter отобразит маршрут, и если это ваш корневой маршрут, приложение завершит работу. Возможно, вы захотите вернуть false и там.
https://api.flutter.dev/flutter/widgets/WillPopScope/onWillPop.html