在颤振中,按下后退按钮时如何返回上一个 URL?

Posted

技术标签:

【中文标题】在颤振中,按下后退按钮时如何返回上一个 URL?【英文标题】:In flutter how can I go back to previous URL when the back button is pressed? 【发布时间】:2021-02-19 02:31:46 【问题描述】:

我对 Flutter 完全陌生,我正在使用 web 视图小部件,但每当我按下它时,它就会退出应用程序。按下后退按钮时如何返回上一页?

这是我的代码 sn-p

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】:

在导航回您的WebView 后,您将返回true。如果你在onWillPop 中返回true,Flutter 会弹出路由,如果它是你的根路由,应用程序将退出。您可能也想在此处返回 false。

https://api.flutter.dev/flutter/widgets/WillPopScope/onWillPop.html

【讨论】:

以上是关于在颤振中,按下后退按钮时如何返回上一个 URL?的主要内容,如果未能解决你的问题,请参考以下文章

颤振:如何在按下后退按钮时不退出应用程序

在android中按下后退按钮后如何返回相同的选项卡?

如何在按下单个片段的手动后退按钮时返回上一个片段?

颤振:我怎样才能抓住后退按钮按下退出我的应用程序

在父活动上按下后退按钮

按下后退按钮后,navigationController 为 NULL