Flutter-通过返回按钮,返回到webview的上一页
在Flutter中,如果你想通过返回按钮返回到WebView的上一页,你需要监听返回按钮的事件,并在相应的页面中管理WebView的导航历史。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
class WebViewPage extends StatefulWidget {
@override
_WebViewPageState createState() => _WebViewPageState();
}
class _WebViewPageState extends State<WebViewPage> {
final Completer<WebViewController> _controller =
Completer<WebViewController>();
bool _canGoBack = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('WebView Example'),
),
body: Builder(builder: (BuildContext context) {
return WebView(
initialUrl: 'https://www.example.com',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
onPageFinished: (String url) {
_controller.future.then((controller) {
controller.canGoBack().then((canGoBack) {
setState(() {
_canGoBack = canGoBack;
});
});
});
},
);
}),
floatingActionButton: _canGoBack
? FloatingActionButton(
onPressed: () {
_controller.future.then((controller) {
controller.goBack();
});
},
child: Icon(Icons.arrow_back),
)
: null,
);
}
}
在这个示例中,_controller
是一个Completer
,用于在WebView创建完成时获取控制器。onPageFinished
回调用于检查是否可以返回上一页。_canGoBack
变量用于跟踪是否可以点击返回按钮。当用户点击返回按钮时,goBack()
函数被调用,WebView会返回到历史记录中的上一页。
评论已关闭