flutter - 如何使设备后退按钮转到flutter webview中的上一页
问题描述
我这里有一些简单的代码,只显示一个网页。我想这样做,按下设备后退按钮会将您带到 web 视图的上一页。我尝试在线寻找解决方案,但无法将其中任何一个集成到我的代码中。请帮帮我。
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
MyAppState createState() => MyAppState();
}
class MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
if (Platform.isAndroid) WebView.platform = SurfaceAndroidWebView();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Mobile App",
home: Scaffold(
body: SafeArea(
child: WebView(
initialUrl: 'https://flutter.dev',
javascriptMode: JavascriptMode.unrestricted,
))),
debugShowCheckedModeBanner: false,
);
}
}
解决方案
用这个小部件包裹脚手架
WillPopScope(
onWillPop: controller.onBackPressedHandler,
child: Scaffold( ... )
Future<bool> onBackPressedHandler() {
return Future.value(false);} //return false disables default functionality
您可以在功能中控制后退按钮onBackPressedHandler
功能。对于您的情况,您应该将这行代码放入其中
webviewController.goBack();
推荐阅读
- swift - 在字符串中添加 Int 数
- postgresql - 如何在 slonik/postgres 查询中传递参数化的 INTERVAL?
- r - 有序因子变量的标记
- reactjs - 我需要 django 休息框架的帮助 更新反应中的表格
- python - 每个值有多个键,有特殊要求
- django - 使用项目级模板 django
- testing - 运行 testcafe 测试时出现 Chrome 浏览器错误
- arrays - Powershell 构建数组,每个项目换行
- python - 如何从 bluez5 dbus api 访问 sdp?
- excel - 使用 excel 公式和条件根据第一次出现的其他列对值求和