В flutter как я могу вернуться к предыдущему URL-адресу при нажатии кнопки «Назад»?

#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