【发布时间】:2021-10-13 08:01:16
【问题描述】:
我通过包装 willpopScope 编写了代码,以便我可以获取 webview 的上一页,但它不起作用,因此它正在关闭整个 webView 页面。
这里是完整的代码:
class Resources extends StatefulWidget {
@override
_ResourcesState createState() => _ResourcesState();
}
class _ResourcesState extends State<Resources> {
late WebViewController _controller;
final Completer<WebViewController> _controllerCompleter =
Completer<WebViewController>();
Future<bool> pop(BuildContext context) async {
if (await _controller.canGoBack()) {
_controller.goBack();
return Future.value(false);
} else {
return Future.value(true);
}
}
@override
void initState() {
super.initState();
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SafeArea(
child: WillPopScope(
onWillPop:()=> pop(context),
child: Scaffold(
appBar: AppBar(),
body: WebView(
gestureNavigationEnabled: true,
initialUrl: 'https://www.edhitch.com/login.html',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controllerCompleter.future.then((value) => _controller = value);
_controllerCompleter.complete(webViewController);
},
),
),
),
),
);
}
}
我使用了带有 bool 函数 pop 的 will scope,请帮助我。
【问题讨论】:
标签: flutter dart flutter-dependencies dart-html dart-null-safety